@@ -195,6 +195,10 @@ <h2>Terminology</h2>
195
195
An < dfn > integer</ dfn > is a < a > Number</ a > that is unchanged
196
196
under the < a > ToInteger</ a > operation.
197
197
198
+ < p >
199
+ A < dfn > floating-point number</ dfn > is a < a > Number</ a > that is
200
+ produced by the < a > parseFloat</ a > operation.
201
+
198
202
< p >
199
203
The < dfn > initial value</ dfn > of an ECMAScript property
200
204
is the value defined by the platform for that property,
@@ -6894,8 +6898,7 @@ <h3 id=input-source-state>State</h3>
6894
6898
and < code > alt</ code > , < code > shift</ code > , < code > ctrl</ code > ,
6895
6899
and < code > meta</ code > all set to < code > false</ code > .
6896
6900
6897
- < p >
6898
- A < a > pointer input source</ a > ’s < a > input source state</ a >
6901
+ < p > A < a > pointer input source</ a > ’s < a > input source state</ a >
6899
6902
is a < dfn > pointer input state</ dfn > object.
6900
6903
This consists of a < code > subtype</ code > property,
6901
6904
which has the possible values
@@ -6905,12 +6908,20 @@ <h3 id=input-source-state>State</h3>
6905
6908
a < code > pressed</ code > property which is a set of unsigned integers,
6906
6909
an < code > x</ code > property which is an unsigned integer,
6907
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]].
6908
6916
6909
6917
< p > When required to < dfn > create a new pointer input state</ dfn > object
6910
6918
with arguments < var > subtype</ var > an implementation must return
6911
6919
a < a > pointer input state</ a > object with < code > subtype</ code > set
6912
- to < var > subtype</ var > , < code > pressed</ code > set to an empty set and
6913
- both < code > x</ code > and < code > y</ code > set to < code > 0</ code > .
6920
+ 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
6922
+ < code > width</ code > , < code > height</ code > , < code > pressure</ code > ,
6923
+ < code > tangentialPressure</ code > , < code > tiltX</ code > , < code > tiltY</ code > ,
6924
+ and < code > twist</ code > are set to null.
6914
6925
6915
6926
< p > Each < a > session</ a > has an associated < dfn > input state table</ dfn > .
6916
6927
This is a map between < a > input id</ a >
@@ -7032,7 +7043,7 @@ <h3>Ticks</h3>
7032
7043
will have the < a > < code > isTrusted</ code > </ a > attribute set to true.
7033
7044
7034
7045
< p >
7035
- The most robust way to despatch these events
7046
+ The most robust way to dispatch these events
7036
7047
is by creating them in the browser implementation itself.
7037
7048
Sending operating system specific input messages to the browser’s window
7038
7049
has the disadvantage that the browser being automated
@@ -7392,6 +7403,12 @@ <h2>Processing actions</h2>
7392
7403
< var > action item</ var > and < var > action</ var > .
7393
7404
If doing so results in an < a > error</ a > , return that < a > error</ a > .
7394
7405
7406
+ < li > < p >
7407
+ If < var > subtype</ var > is "< code > pointerUp</ code > " or "< code > pointerDown</ code > "
7408
+ or "< code > pointerMove</ code > ", < a > process optional pointer properties</ a > with
7409
+ arguments < var > action item</ var > and < var > action</ var > .
7410
+ If doing so results in an < a > error</ a > , return that < a > error</ a > .
7411
+
7395
7412
< li > < p >
7396
7413
If < var > subtype</ var > is "< code > pointerCancel</ code > "
7397
7414
< span class =issue > process a pointer cancel action</ span > .
@@ -7494,6 +7511,132 @@ <h2>Processing actions</h2>
7494
7511
7495
7512
< li > < p > Return success with data < a > null</ a > .
7496
7513
</ ol >
7514
+
7515
+ < p > When required to < dfn > process optional pointer properties</ dfn >
7516
+ with arguments < var > action item</ var > , and < var > action</ var > , a
7517
+ < a > remote end</ a > must run the following steps in accordance with
7518
+ the requirements of [[!POINTER-EVENTS]]:</ p >
7519
+
7520
+ < ol >
7521
+ < li > < p > Let < var > width</ var > be the result
7522
+ of getting the property < code > width</ code >
7523
+ from < var > action item</ var > .
7524
+
7525
+ < li > < p > If < var > width</ var > is not < a > undefined</ a > :
7526
+
7527
+ < ol >
7528
+ < li > < p >
7529
+ If < var > width</ var > is not a < a > Floating-Point Number</ a > greater than or equal to 1,
7530
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7531
+
7532
+ < li > < p >
7533
+ Set the < code > width</ code > property of < var > action</ var >
7534
+ to < var > width</ var > .
7535
+ </ ol >
7536
+
7537
+ < li > < p > Let < var > height</ var > be the result
7538
+ of getting the property < code > height</ code >
7539
+ from < var > action item</ var > .
7540
+
7541
+ < li > < p > If < var > height</ var > is not < a > undefined</ a > :
7542
+
7543
+ < ol >
7544
+ < li > < p >
7545
+ If < var > height</ var > is not a < a > Floating-Point Number</ a > greater than or equal to 1,
7546
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7547
+
7548
+ < li > < p >
7549
+ Set the < code > height</ code > property of < var > action</ var >
7550
+ to < var > height</ var > .
7551
+ </ ol >
7552
+
7553
+ < li > < p > If < var > width</ var > is not < a > undefined</ a > while
7554
+ < var > height</ var > is < a > undefined</ a > or vice versa
7555
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7556
+
7557
+ < li > < p > Let < var > pressure</ var > be the result
7558
+ of getting the property < code > pressure</ code >
7559
+ from < var > action item</ var > .
7560
+
7561
+ < li > < p > If < var > pressure</ var > is not < a > undefined</ a > :
7562
+
7563
+ < ol >
7564
+ < li > < p >
7565
+ If < var > pressure</ var > is not a < a > Floating-Point Number</ a > in the range of [0, 1]
7566
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7567
+
7568
+ < li > < p >
7569
+ Set the < code > pressure</ code > property of < var > action</ var >
7570
+ to < var > pressure</ var > .
7571
+ </ ol >
7572
+
7573
+ < li > < p > Let < var > tangentialPressure</ var > be the result
7574
+ of getting the property < code > tangentialPressure</ code >
7575
+ from < var > action item</ var > .
7576
+
7577
+ < li > < p > If < var > tangentialPressure</ var > is not < a > undefined</ a > :
7578
+
7579
+ < ol >
7580
+ < li > < p >
7581
+ If < var > tangentialPressure</ var > is not a < a > Floating-Point Number</ a >
7582
+ in the range of [-1, 1]
7583
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7584
+
7585
+ < li > < p >
7586
+ Set the < code > tangentialPressure</ code > property of < var > action</ var >
7587
+ to < var > tangentialPressure</ var > .
7588
+ </ ol >
7589
+
7590
+ < li > < p > Let < var > tiltX</ var > be the result
7591
+ of getting the property < code > tiltX</ code >
7592
+ from < var > action item</ var > .
7593
+
7594
+ < li > < p > If < var > tiltX</ var > is not < a > undefined</ a > :
7595
+
7596
+ < ol >
7597
+ < li > < p >
7598
+ If < var > tiltX</ var > is not an < a > Integer</ a > in the range of [-90, 90]
7599
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7600
+
7601
+ < li > < p >
7602
+ Set the < code > tiltX</ code > property of < var > action</ var >
7603
+ to < var > tiltX</ var > .
7604
+ </ ol >
7605
+
7606
+ < li > < p > Let < var > tiltY</ var > be the result
7607
+ of getting the property < code > tiltY</ code >
7608
+ from < var > action item</ var > .
7609
+
7610
+ < li > < p > If < var > tiltY</ var > is not < a > undefined</ a > :
7611
+
7612
+ < ol >
7613
+ < li > < p >
7614
+ If < var > tiltY</ var > is not an < a > Integer</ a > in the range of [-90, 90]
7615
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7616
+
7617
+ < li > < p >
7618
+ Set the < code > tiltY</ code > property of < var > action</ var >
7619
+ to < var > tiltY</ var > .
7620
+ </ ol >
7621
+
7622
+ < li > < p > Let < var > twist</ var > be the result
7623
+ of getting the property < code > twist</ code >
7624
+ from < var > action item</ var > .
7625
+
7626
+ < li > < p > If < var > twist</ var > is not < a > undefined</ a > :
7627
+
7628
+ < ol >
7629
+ < li > < p >
7630
+ If < var > twist</ var > is not an < a > Integer</ a > in the range of [0, 359]
7631
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7632
+
7633
+ < li > < p >
7634
+ Set the < code > twist</ code > property of < var > action</ var >
7635
+ to < var > twist</ var > .
7636
+ </ ol >
7637
+
7638
+ < li > < p > Return success with data < a > null</ a > .
7639
+ </ ol >
7497
7640
</ section > <!-- /processing-actions -->
7498
7641
7499
7642
@@ -9174,6 +9317,7 @@ <h2>Acknowledgements</h2>
9174
9317
<!-- Randall Kent --> Randall Kent,
9175
9318
<!-- Seva Lotoshnikov --> Seva Lotoshnikov,
9176
9319
<!-- Simon Stewart --> < a href =http://www.rocketpoweredjetpants.com/ > Simon Stewart</ a > ,
9320
+ <!-- Timotius Arya Margo --> Timotius Arya Margo,
9177
9321
<!-- Titus Fortner --> Titus Fortner,
9178
9322
<!-- Vangelis Katsikaros --> and Vangelis Katsikaros.
9179
9323
0 commit comments