@@ -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