@@ -6909,20 +6909,56 @@ <h3 id=input-source-state>State</h3>
6909
6909
a < code > pressed</ code > property which is a set of unsigned integers,
6910
6910
an < code > x</ code > property which is an unsigned integer,
6911
6911
and a < code > y</ code > property which is an unsigned integer.
6912
- Additionally, it also contains optional properties
6913
- < code > width</ code > , < code > height</ code > , < code > pressure</ code > , and
6914
- < code > tangentialPressure</ code > which are floating-point numbers, and
6915
- < code > tiltX</ code > , < code > tiltY</ code > , and < code > twist</ code > which
6916
- are integers in accordance with the requirements of [[!POINTER-EVENTS]].
6912
+
6913
+ < p > Additionally, a < a > pointer input state</ a > object also contains
6914
+ < dfn > optional pointer properties</ dfn > as shown in the table below
6915
+ in accordance with the requirements of [[!POINTER-EVENTS]].
6916
+
6917
+ < table class =simple >
6918
+ < thead >
6919
+ < tr >
6920
+ < th > Property
6921
+ < th > Type
6922
+ </ tr >
6923
+ </ thead >
6924
+ < tr >
6925
+ < td > < code > width</ code >
6926
+ < td > < a > floating-point number</ a >
6927
+ </ tr >
6928
+ < tr >
6929
+ < td > < code > height</ code >
6930
+ < td > < a > floating-point number</ a >
6931
+ </ tr >
6932
+ < tr >
6933
+ < td > < code > pressure</ code >
6934
+ < td > < a > floating-point number</ a >
6935
+ </ tr >
6936
+ < tr >
6937
+ < td > < code > tangentialPressure</ code >
6938
+ < td > < a > floating-point number</ a >
6939
+ </ tr >
6940
+ < tr >
6941
+ < td > < code > tiltX</ code >
6942
+ < td > < a > integer</ a >
6943
+ </ tr >
6944
+ < tr >
6945
+ < td > < code > tiltY</ code >
6946
+ < td > < a > integer</ a >
6947
+ </ tr >
6948
+ < tr >
6949
+ < td > < code > twist</ code >
6950
+ < td > < a > integer</ a >
6951
+ </ tr >
6952
+ </ table >
6917
6953
6918
6954
< p > When required to < dfn > create a new pointer input state</ dfn > object
6919
6955
with arguments < var > subtype</ var > an implementation must return
6920
6956
a < a > pointer input state</ a > object with < code > subtype</ code > set
6921
6957
to < var > subtype</ var > , < code > pressed</ code > set to an empty set,
6922
- both < code > x</ code > and < code > y</ code > set to < code > 0</ code > , and
6958
+ both < code > x</ code > and < code > y</ code > set to < code > 0</ code > ,
6923
6959
< code > width</ code > , < code > height</ code > , < code > pressure</ code > ,
6924
6960
< code > tangentialPressure</ code > , < code > tiltX</ code > , < code > tiltY</ code > ,
6925
- and < code > twist</ code > are set to null.
6961
+ and < code > twist</ code > set to < a > null</ a > .
6926
6962
6927
6963
< p > Each < a > session</ a > has an associated < dfn > input state table</ dfn > .
6928
6964
This is a map between < a > input id</ a >
@@ -8250,6 +8286,9 @@ <h2>Pointer actions</h2>
8250
8286
< var > input state</ var > ’s < code > pressed</ code > property, and
8251
8287
let < var > buttons</ var > be the resulting value of that property.
8252
8288
8289
+ < li > < p > < a > Set input state optional pointer properties</ a > with
8290
+ arguments < var > action object</ var > , < var > input state</ var > .
8291
+
8253
8292
< li > < p > Append a copy of < var > action object</ var > with
8254
8293
the < var > subtype</ var > property changed to < var > pointerUp</ var > to
8255
8294
the < a > current session</ a > ’s < a > input cancel list</ a > .
@@ -8259,7 +8298,9 @@ <h2>Pointer actions</h2>
8259
8298
numbered < var > button</ var > on the pointer with ID
8260
8299
< var > source id</ var > , having type < var > pointerType</ var > at
8261
8300
viewport x coordinate < var > x</ var > , viewport y
8262
- coordinate < var > y</ var > , with buttons < var > buttons</ var > depressed
8301
+ coordinate < var > y</ var > , with buttons < var > buttons</ var > depressed,
8302
+ and type specific properties set to the < var > input state</ var > ’s
8303
+ < a > optional pointer properties</ a > that are not < a > null</ a > ,
8263
8304
in accordance with the requirements of [[!UI-EVENTS]] and
8264
8305
[[!POINTER-EVENTS]]. The generated events must
8265
8306
set < code > ctrlKey</ code > , < code > shiftKey</ code > , < code > altKey</ code > ,
@@ -8297,6 +8338,9 @@ <h2>Pointer actions</h2>
8297
8338
< li > < p > Let < var > y</ var > be equal to < var > input state</ var > ’s
8298
8339
< code > y</ code > property.
8299
8340
8341
+ < li > < p > < a > Set input state optional pointer properties</ a > with
8342
+ arguments < var > action object</ var > , < var > input state</ var > .
8343
+
8300
8344
< li > < p > Remove < var > button</ var > from the set corresponding
8301
8345
to < var > input state</ var > ’s < code > pressed</ code > property, and
8302
8346
let < var > buttons</ var > be the resulting value of that
@@ -8308,6 +8352,8 @@ <h2>Pointer actions</h2>
8308
8352
< var > source id</ var > having type < var > pointerType</ var > at
8309
8353
viewport x coordinate < var > x</ var > , viewport y
8310
8354
coordinate < var > y</ var > , with buttons < var > buttons</ var > depressed,
8355
+ and type specific properties set to the < var > input state</ var > ’s
8356
+ < a > optional pointer properties</ a > that are not < a > null</ a > ,
8311
8357
in accordance with the requirements of [[!UI-EVENTS]] and
8312
8358
[[!POINTER-EVENTS]]. The generated events must
8313
8359
set < code > ctrlKey</ code > , < code > shiftKey</ code > , < code > altKey</ code > ,
@@ -8385,6 +8431,9 @@ <h2>Pointer actions</h2>
8385
8431
return < a > error</ a > with error code < a > move target out of
8386
8432
bounds</ a > .
8387
8433
8434
+ < li > < p > < a > Set input state optional pointer properties</ a > with
8435
+ arguments < var > action object</ var > , < var > input state</ var > .
8436
+
8388
8437
< li > < p > Let < var > duration</ var > be equal to
8389
8438
< var > action object</ var > ’s < code > duration</ code > property if it
8390
8439
is not < a > undefined</ a > , or < var > tick duration</ var >
@@ -8456,7 +8505,9 @@ <h2>Pointer actions</h2>
8456
8505
viewport x coordinate < var > current x</ var > , viewport y
8457
8506
coordinate < var > y</ var > to viewport x coordinate < var > x</ var > and
8458
8507
viewport y coordinate < var > y</ var > , with
8459
- buttons < var > buttons</ var > depressed, in accordance with the
8508
+ buttons < var > buttons</ var > depressed, and type specific properties
8509
+ set to the < var > input state</ var > ’s < a > optional pointer properties</ a >
8510
+ that are not < a > null</ a > , in accordance with the
8460
8511
requirements of [[!UI-EVENTS]] and [[!POINTER-EVENTS]]. The
8461
8512
generated events must set < code > ctrlKey</ code > , < code > shiftKey</ code > ,
8462
8513
< code > altKey</ code > , and < code > metaKey</ code > from the
@@ -8509,6 +8560,54 @@ <h2>Pointer actions</h2>
8509
8560
8510
8561
</ ol >
8511
8562
8563
+ < p > When required to < dfn > set input state optional pointer properties</ dfn >
8564
+ with arguments < var > action object</ var > , < var > input state</ var > ,
8565
+ an implementation must run the following steps:
8566
+
8567
+ < ol >
8568
+ < li > < p > Let < var > width</ var > be equal to
8569
+ < var > action object</ var > ’s < code > width</ code > property.
8570
+
8571
+ < li > < p > If < var > width</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8572
+ < code > width</ code > property equal < var > width</ var > .
8573
+
8574
+ < li > < p > Let < var > height</ var > be equal to
8575
+ < var > action object</ var > ’s < code > height</ code > property.
8576
+
8577
+ < li > < p > If < var > height</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8578
+ < code > height</ code > property equal < var > height</ var > .
8579
+
8580
+ < li > < p > Let < var > pressure</ var > be equal to
8581
+ < var > action object</ var > ’s < code > pressure</ code > property.
8582
+
8583
+ < li > < p > If < var > pressure</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8584
+ < code > pressure</ code > property equal < var > pressure</ var > .
8585
+
8586
+ < li > < p > Let < var > tangentialPressure</ var > be equal to
8587
+ < var > action object</ var > ’s < code > tangentialPressure</ code > property.
8588
+
8589
+ < li > < p > If < var > tangentialPressure</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8590
+ < code > tangentialPressure</ code > property equal < var > tangentialPressure</ var > .
8591
+
8592
+ < li > < p > Let < var > tiltX</ var > be equal to
8593
+ < var > action object</ var > ’s < code > tiltX</ code > property.
8594
+
8595
+ < li > < p > If < var > tiltX</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8596
+ < code > tiltX</ code > property equal < var > tiltX</ var > .
8597
+
8598
+ < li > < p > Let < var > tiltY</ var > be equal to
8599
+ < var > action object</ var > ’s < code > tiltY</ code > property.
8600
+
8601
+ < li > < p > If < var > tiltY</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8602
+ < code > tiltY</ code > property equal < var > tiltY</ var > .
8603
+
8604
+ < li > < p > Let < var > twist</ var > be equal to
8605
+ < var > action object</ var > ’s < code > twist</ code > property.
8606
+
8607
+ < li > < p > If < var > twist</ var > is not < a > undefined</ a > , let < var > input state</ var > ’s
8608
+ < code > twist</ code > property equal < var > twist</ var > .
8609
+ </ ol >
8610
+
8512
8611
< p > When required to < dfn > dispatch a pointerCancel action</ dfn > with
8513
8612
arguments < var > source id</ var > , < var > action object</ var > ,
8514
8613
< var > input state</ var > and < var > tick duration</ var > a
0 commit comments