@@ -6908,20 +6908,56 @@ <h3 id=input-source-state>State</h3>
69086908a < code > pressed</ code >  property which is a set of unsigned integers,
69096909an < code > x</ code >  property which is an unsigned integer,
69106910and a < code > y</ code >  property which is an unsigned integer.
6911- Additionally, it also contains optional properties
6912- < code > width</ code > , < code > height</ code > , < code > pressure</ code > , and
6913- < code > tangentialPressure</ code >  which are floating-point numbers, and
6914- < code > tiltX</ code > , < code > tiltY</ code > , and < code > twist</ code >  which
6915- are integers in accordance with the requirements of [[!POINTER-EVENTS]].
6911+ 
6912+ < p > Additionally, a < a > pointer input state</ a >  object also contains
6913+ < dfn > optional pointer properties</ dfn >  as shown in the table below
6914+ in accordance with the requirements of [[!POINTER-EVENTS]].
6915+ 
6916+ < table  class =simple > 
6917+  < thead > 
6918+   < tr > 
6919+    < th > Property
6920+    < th > Type
6921+   </ tr > 
6922+  </ thead > 
6923+  < tr > 
6924+   < td > < code > width</ code > 
6925+   < td > < a > floating-point number</ a > 
6926+  </ tr > 
6927+  < tr > 
6928+   < td > < code > height</ code > 
6929+   < td > < a > floating-point number</ a > 
6930+  </ tr > 
6931+  < tr > 
6932+   < td > < code > pressure</ code > 
6933+   < td > < a > floating-point number</ a > 
6934+  </ tr > 
6935+  < tr > 
6936+   < td > < code > tangentialPressure</ code > 
6937+   < td > < a > floating-point number</ a > 
6938+  </ tr > 
6939+  < tr > 
6940+   < td > < code > tiltX</ code > 
6941+   < td > < a > integer</ a > 
6942+  </ tr > 
6943+  < tr > 
6944+   < td > < code > tiltY</ code > 
6945+   < td > < a > integer</ a > 
6946+  </ tr > 
6947+  < tr > 
6948+   < td > < code > twist</ code > 
6949+   < td > < a > integer</ a > 
6950+  </ tr > 
6951+ </ table > 
69166952
69176953< p > When required to < dfn > create a new pointer input state</ dfn >  object
69186954 with arguments < var > subtype</ var >  an implementation must return
69196955 a < a > pointer input state</ a >  object with < code > subtype</ code >  set
69206956 to < var > subtype</ var > , < code > pressed</ code >  set to an empty set,
6921-  both < code > x</ code >  and < code > y</ code >  set to < code > 0</ code > , and 
6957+  both < code > x</ code >  and < code > y</ code >  set to < code > 0</ code > ,
69226958 < code > width</ code > , < code > height</ code > , < code > pressure</ code > ,
69236959 < code > tangentialPressure</ code > , < code > tiltX</ code > , < code > tiltY</ code > ,
6924-  and < code > twist</ code >  are  set to null.
6960+  and < code > twist</ code >  set to < a > null</ a > .
69256961
69266962< p > Each < a > session</ a >  has an associated < dfn > input state table</ dfn > .
69276963 This is a map between < a > input id</ a > 
@@ -8249,6 +8285,9 @@ <h2>Pointer actions</h2>
82498285  < var > input state</ var > ’s < code > pressed</ code >  property, and
82508286  let < var > buttons</ var >  be the resulting value of that property.
82518287
8288+  < li > < p > < a > Set input state optional pointer properties</ a >  with
8289+   arguments < var > action object</ var > , < var > input state</ var > .
8290+ 
82528291 < li > < p > Append a copy of < var > action object</ var >  with
82538292  the < var > subtype</ var >  property changed to < var > pointerUp</ var >  to
82548293  the < a > current session</ a > ’s < a > input cancel list</ a > .
@@ -8258,7 +8297,9 @@ <h2>Pointer actions</h2>
82588297  numbered < var > button</ var >  on the pointer with ID
82598298  < var > source id</ var > , having type < var > pointerType</ var >  at
82608299  viewport x coordinate < var > x</ var > , viewport y
8261-   coordinate < var > y</ var > , with buttons < var > buttons</ var >  depressed
8300+   coordinate < var > y</ var > , with buttons < var > buttons</ var >  depressed,
8301+   and type specific properties set to the < var > input state</ var > ’s
8302+   < a > optional pointer properties</ a >  that are not < a > null</ a > ,
82628303  in accordance with the requirements of [[!UI-EVENTS]] and
82638304  [[!POINTER-EVENTS]]. The generated events must
82648305  set < code > ctrlKey</ code > , < code > shiftKey</ code > , < code > altKey</ code > ,
@@ -8296,6 +8337,9 @@ <h2>Pointer actions</h2>
82968337 < li > < p > Let < var > y</ var >  be equal to < var > input state</ var > ’s
82978338  < code > y</ code >  property.
82988339
8340+  < li > < p > < a > Set input state optional pointer properties</ a >  with
8341+   arguments < var > action object</ var > , < var > input state</ var > .
8342+ 
82998343 < li > < p > Remove < var > button</ var >  from the set corresponding
83008344  to < var > input state</ var > ’s < code > pressed</ code >  property, and
83018345  let < var > buttons</ var >  be the resulting value of that
@@ -8307,6 +8351,8 @@ <h2>Pointer actions</h2>
83078351  < var > source id</ var >  having type < var > pointerType</ var >  at
83088352  viewport x coordinate < var > x</ var > , viewport y
83098353  coordinate < var > y</ var > , with buttons < var > buttons</ var >  depressed,
8354+   and type specific properties set to the < var > input state</ var > ’s
8355+   < a > optional pointer properties</ a >  that are not < a > null</ a > ,
83108356  in accordance with the requirements of [[!UI-EVENTS]] and
83118357  [[!POINTER-EVENTS]].  The generated events must
83128358  set < code > ctrlKey</ code > , < code > shiftKey</ code > , < code > altKey</ code > ,
@@ -8384,6 +8430,9 @@ <h2>Pointer actions</h2>
83848430  return < a > error</ a >  with error code < a > move target out of
83858431  bounds</ a > .
83868432
8433+  < li > < p > < a > Set input state optional pointer properties</ a >  with
8434+   arguments < var > action object</ var > , < var > input state</ var > .
8435+ 
83878436 < li > < p > Let < var > duration</ var >  be equal to
83888437  < var > action object</ var > ’s < code > duration</ code >  property if it
83898438  is not < a > undefined</ a > , or < var > tick duration</ var > 
@@ -8455,7 +8504,9 @@ <h2>Pointer actions</h2>
84558504    viewport x coordinate < var > current x</ var > , viewport y
84568505    coordinate < var > y</ var >  to viewport x coordinate < var > x</ var >  and
84578506    viewport y coordinate < var > y</ var > , with
8458-     buttons < var > buttons</ var >  depressed, in accordance with the
8507+     buttons < var > buttons</ var >  depressed, and type specific properties
8508+     set to the < var > input state</ var > ’s < a > optional pointer properties</ a > 
8509+     that are not < a > null</ a > , in accordance with the
84598510    requirements of [[!UI-EVENTS]] and [[!POINTER-EVENTS]]. The
84608511    generated events must set < code > ctrlKey</ code > , < code > shiftKey</ code > ,
84618512    < code > altKey</ code > , and < code > metaKey</ code >  from the
@@ -8508,6 +8559,54 @@ <h2>Pointer actions</h2>
85088559
85098560</ ol > 
85108561
8562+ < p > When required to < dfn > set input state optional pointer properties</ dfn > 
8563+  with arguments < var > action object</ var > , < var > input state</ var > ,
8564+  an implementation must run the following steps:
8565+ 
8566+ < ol > 
8567+  < li > < p > Let < var > width</ var >  be equal to
8568+   < var > action object</ var > ’s < code > width</ code >  property.
8569+ 
8570+  < li > < p > If < var > width</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8571+   < code > width</ code >  property equal < var > width</ var > .
8572+ 
8573+  < li > < p > Let < var > height</ var >  be equal to
8574+   < var > action object</ var > ’s < code > height</ code >  property.
8575+ 
8576+  < li > < p > If < var > height</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8577+   < code > height</ code >  property equal < var > height</ var > .
8578+ 
8579+  < li > < p > Let < var > pressure</ var >  be equal to
8580+   < var > action object</ var > ’s < code > pressure</ code >  property.
8581+ 
8582+  < li > < p > If < var > pressure</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8583+   < code > pressure</ code >  property equal < var > pressure</ var > .
8584+ 
8585+  < li > < p > Let < var > tangentialPressure</ var >  be equal to
8586+   < var > action object</ var > ’s < code > tangentialPressure</ code >  property.
8587+ 
8588+  < li > < p > If < var > tangentialPressure</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8589+   < code > tangentialPressure</ code >  property equal < var > tangentialPressure</ var > .
8590+ 
8591+  < li > < p > Let < var > tiltX</ var >  be equal to
8592+   < var > action object</ var > ’s < code > tiltX</ code >  property.
8593+ 
8594+  < li > < p > If < var > tiltX</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8595+   < code > tiltX</ code >  property equal < var > tiltX</ var > .
8596+ 
8597+  < li > < p > Let < var > tiltY</ var >  be equal to
8598+   < var > action object</ var > ’s < code > tiltY</ code >  property.
8599+ 
8600+  < li > < p > If < var > tiltY</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8601+   < code > tiltY</ code >  property equal < var > tiltY</ var > .
8602+ 
8603+  < li > < p > Let < var > twist</ var >  be equal to
8604+   < var > action object</ var > ’s < code > twist</ code >  property.
8605+ 
8606+  < li > < p > If < var > twist</ var >  is not < a > undefined</ a > , let < var > input state</ var > ’s
8607+   < code > twist</ code >  property equal < var > twist</ var > .
8608+ </ ol > 
8609+ 
85118610< p > When required to < dfn > dispatch a pointerCancel action</ dfn >  with
85128611 arguments < var > source id</ var > , < var > action object</ var > ,
85138612 < var > input state</ var >  and < var > tick duration</ var >  a
0 commit comments