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