@@ -6908,20 +6908,56 @@ <h3 id=input-source-state>State</h3>
6908
6908
a < code > pressed</ code > property which is a set of unsigned integers,
6909
6909
an < code > x</ code > property which is an unsigned integer,
6910
6910
and 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 >
6916
6952
6917
6953
< p > When required to < dfn > create a new pointer input state</ dfn > object
6918
6954
with arguments < var > subtype</ var > an implementation must return
6919
6955
a < a > pointer input state</ a > object with < code > subtype</ code > set
6920
6956
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 > ,
6922
6958
< code > width</ code > , < code > height</ code > , < code > pressure</ code > ,
6923
6959
< 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 > .
6925
6961
6926
6962
< p > Each < a > session</ a > has an associated < dfn > input state table</ dfn > .
6927
6963
This is a map between < a > input id</ a >
@@ -8249,6 +8285,9 @@ <h2>Pointer actions</h2>
8249
8285
< var > input state</ var > ’s < code > pressed</ code > property, and
8250
8286
let < var > buttons</ var > be the resulting value of that property.
8251
8287
8288
+ < li > < p > < a > Set input state optional pointer properties</ a > with
8289
+ arguments < var > action object</ var > , < var > input state</ var > .
8290
+
8252
8291
< li > < p > Append a copy of < var > action object</ var > with
8253
8292
the < var > subtype</ var > property changed to < var > pointerUp</ var > to
8254
8293
the < a > current session</ a > ’s < a > input cancel list</ a > .
@@ -8258,7 +8297,9 @@ <h2>Pointer actions</h2>
8258
8297
numbered < var > button</ var > on the pointer with ID
8259
8298
< var > source id</ var > , having type < var > pointerType</ var > at
8260
8299
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 > ,
8262
8303
in accordance with the requirements of [[!UI-EVENTS]] and
8263
8304
[[!POINTER-EVENTS]]. The generated events must
8264
8305
set < code > ctrlKey</ code > , < code > shiftKey</ code > , < code > altKey</ code > ,
@@ -8296,6 +8337,9 @@ <h2>Pointer actions</h2>
8296
8337
< li > < p > Let < var > y</ var > be equal to < var > input state</ var > ’s
8297
8338
< code > y</ code > property.
8298
8339
8340
+ < li > < p > < a > Set input state optional pointer properties</ a > with
8341
+ arguments < var > action object</ var > , < var > input state</ var > .
8342
+
8299
8343
< li > < p > Remove < var > button</ var > from the set corresponding
8300
8344
to < var > input state</ var > ’s < code > pressed</ code > property, and
8301
8345
let < var > buttons</ var > be the resulting value of that
@@ -8307,6 +8351,8 @@ <h2>Pointer actions</h2>
8307
8351
< var > source id</ var > having type < var > pointerType</ var > at
8308
8352
viewport x coordinate < var > x</ var > , viewport y
8309
8353
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 > ,
8310
8356
in accordance with the requirements of [[!UI-EVENTS]] and
8311
8357
[[!POINTER-EVENTS]]. The generated events must
8312
8358
set < code > ctrlKey</ code > , < code > shiftKey</ code > , < code > altKey</ code > ,
@@ -8384,6 +8430,9 @@ <h2>Pointer actions</h2>
8384
8430
return < a > error</ a > with error code < a > move target out of
8385
8431
bounds</ a > .
8386
8432
8433
+ < li > < p > < a > Set input state optional pointer properties</ a > with
8434
+ arguments < var > action object</ var > , < var > input state</ var > .
8435
+
8387
8436
< li > < p > Let < var > duration</ var > be equal to
8388
8437
< var > action object</ var > ’s < code > duration</ code > property if it
8389
8438
is not < a > undefined</ a > , or < var > tick duration</ var >
@@ -8455,7 +8504,9 @@ <h2>Pointer actions</h2>
8455
8504
viewport x coordinate < var > current x</ var > , viewport y
8456
8505
coordinate < var > y</ var > to viewport x coordinate < var > x</ var > and
8457
8506
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
8459
8510
requirements of [[!UI-EVENTS]] and [[!POINTER-EVENTS]]. The
8460
8511
generated events must set < code > ctrlKey</ code > , < code > shiftKey</ code > ,
8461
8512
< code > altKey</ code > , and < code > metaKey</ code > from the
@@ -8508,6 +8559,54 @@ <h2>Pointer actions</h2>
8508
8559
8509
8560
</ ol >
8510
8561
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
+
8511
8610
< p > When required to < dfn > dispatch a pointerCancel action</ dfn > with
8512
8611
arguments < var > source id</ var > , < var > action object</ var > ,
8513
8612
< var > input state</ var > and < var > tick duration</ var > a
0 commit comments