@@ -188,6 +188,10 @@ <h2>Terminology</h2>
188
188
An < dfn > integer</ dfn > is a < a > Number</ a > that is unchanged
189
189
under the < a > ToInteger</ a > operation.
190
190
191
+ < p >
192
+ A < dfn > floating-point number</ dfn > is a < a > Number</ a > that is
193
+ produced by the < a > parseFloat</ a > operation.
194
+
191
195
< p >
192
196
The < dfn > initial value</ dfn > of an ECMAScript property
193
197
is the value defined by the platform for that property,
@@ -6888,8 +6892,7 @@ <h3 id=input-source-state>State</h3>
6888
6892
and < code > alt</ code > , < code > shift</ code > , < code > ctrl</ code > ,
6889
6893
and < code > meta</ code > all set to < code > false</ code > .
6890
6894
6891
- < p >
6892
- A < a > pointer input source</ a > ’s < a > input source state</ a >
6895
+ < p > A < a > pointer input source</ a > ’s < a > input source state</ a >
6893
6896
is a < dfn > pointer input state</ dfn > object.
6894
6897
This consists of a < code > subtype</ code > property,
6895
6898
which has the possible values
@@ -6899,12 +6902,20 @@ <h3 id=input-source-state>State</h3>
6899
6902
a < code > pressed</ code > property which is a set of unsigned integers,
6900
6903
an < code > x</ code > property which is an unsigned integer,
6901
6904
and a < code > y</ code > property which is an unsigned integer.
6905
+ Additionally, it also contains optional properties
6906
+ < code > width</ code > , < code > height</ code > , < code > pressure</ code > , and
6907
+ < code > tangentialPressure</ code > which are floating-point numbers, and
6908
+ < code > tiltX</ code > , < code > tiltY</ code > , and < code > twist</ code > which
6909
+ are integers in accordance with the requirements of [[!POINTER-EVENTS]].
6902
6910
6903
6911
< p > When required to < dfn > create a new pointer input state</ dfn > object
6904
6912
with arguments < var > subtype</ var > an implementation must return
6905
6913
a < a > pointer input state</ a > object with < code > subtype</ code > set
6906
- to < var > subtype</ var > , < code > pressed</ code > set to an empty set and
6907
- both < code > x</ code > and < code > y</ code > set to < code > 0</ code > .
6914
+ to < var > subtype</ var > , < code > pressed</ code > set to an empty set,
6915
+ both < code > x</ code > and < code > y</ code > set to < code > 0</ code > , and
6916
+ < code > width</ code > , < code > height</ code > , < code > pressure</ code > ,
6917
+ < code > tangentialPressure</ code > , < code > tiltX</ code > , < code > tiltY</ code > ,
6918
+ and < code > twist</ code > are set to null.
6908
6919
6909
6920
< p > Each < a > session</ a > has an associated < dfn > input state table</ dfn > .
6910
6921
This is a map between < a > input id</ a >
@@ -7026,7 +7037,7 @@ <h3>Ticks</h3>
7026
7037
will have the < a > < code > isTrusted</ code > </ a > attribute set to true.
7027
7038
7028
7039
< p >
7029
- The most robust way to despatch these events
7040
+ The most robust way to dispatch these events
7030
7041
is by creating them in the browser implementation itself.
7031
7042
Sending operating system specific input messages to the browser’s window
7032
7043
has the disadvantage that the browser being automated
@@ -7386,6 +7397,12 @@ <h2>Processing actions</h2>
7386
7397
< var > action item</ var > and < var > action</ var > .
7387
7398
If doing so results in an < a > error</ a > , return that < a > error</ a > .
7388
7399
7400
+ < li > < p >
7401
+ If < var > subtype</ var > is "< code > pointerUp</ code > " or "< code > pointerDown</ code > "
7402
+ or "< code > pointerMove</ code > ", < a > process optional pointer properties</ a > with
7403
+ arguments < var > action item</ var > and < var > action</ var > .
7404
+ If doing so results in an < a > error</ a > , return that < a > error</ a > .
7405
+
7389
7406
< li > < p >
7390
7407
If < var > subtype</ var > is "< code > pointerCancel</ code > "
7391
7408
< span class =issue > process a pointer cancel action</ span > .
@@ -7488,6 +7505,132 @@ <h2>Processing actions</h2>
7488
7505
7489
7506
< li > < p > Return success with data < a > null</ a > .
7490
7507
</ ol >
7508
+
7509
+ < p > When required to < dfn > process optional pointer properties</ dfn >
7510
+ with arguments < var > action item</ var > , and < var > action</ var > , a
7511
+ < a > remote end</ a > must run the following steps in accordance with
7512
+ the requirements of [[!POINTER-EVENTS]]:</ p >
7513
+
7514
+ < ol >
7515
+ < li > < p > Let < var > width</ var > be the result
7516
+ of getting the property < code > width</ code >
7517
+ from < var > action item</ var > .
7518
+
7519
+ < li > < p > If < var > width</ var > is not < a > undefined</ a > :
7520
+
7521
+ < ol >
7522
+ < li > < p >
7523
+ If < var > width</ var > is not a < a > Floating-Point Number</ a > greater than or equal to 1,
7524
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7525
+
7526
+ < li > < p >
7527
+ Set the < code > width</ code > property of < var > action</ var >
7528
+ to < var > width</ var > .
7529
+ </ ol >
7530
+
7531
+ < li > < p > Let < var > height</ var > be the result
7532
+ of getting the property < code > height</ code >
7533
+ from < var > action item</ var > .
7534
+
7535
+ < li > < p > If < var > height</ var > is not < a > undefined</ a > :
7536
+
7537
+ < ol >
7538
+ < li > < p >
7539
+ If < var > height</ var > is not a < a > Floating-Point Number</ a > greater than or equal to 1,
7540
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7541
+
7542
+ < li > < p >
7543
+ Set the < code > height</ code > property of < var > action</ var >
7544
+ to < var > height</ var > .
7545
+ </ ol >
7546
+
7547
+ < li > < p > If < var > width</ var > is not < a > undefined</ a > while
7548
+ < var > height</ var > is < a > undefined</ a > or vice versa
7549
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7550
+
7551
+ < li > < p > Let < var > pressure</ var > be the result
7552
+ of getting the property < code > pressure</ code >
7553
+ from < var > action item</ var > .
7554
+
7555
+ < li > < p > If < var > pressure</ var > is not < a > undefined</ a > :
7556
+
7557
+ < ol >
7558
+ < li > < p >
7559
+ If < var > pressure</ var > is not a < a > Floating-Point Number</ a > in the range of [0, 1]
7560
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7561
+
7562
+ < li > < p >
7563
+ Set the < code > pressure</ code > property of < var > action</ var >
7564
+ to < var > pressure</ var > .
7565
+ </ ol >
7566
+
7567
+ < li > < p > Let < var > tangentialPressure</ var > be the result
7568
+ of getting the property < code > tangentialPressure</ code >
7569
+ from < var > action item</ var > .
7570
+
7571
+ < li > < p > If < var > tangentialPressure</ var > is not < a > undefined</ a > :
7572
+
7573
+ < ol >
7574
+ < li > < p >
7575
+ If < var > tangentialPressure</ var > is not a < a > Floating-Point Number</ a >
7576
+ in the range of [-1, 1]
7577
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7578
+
7579
+ < li > < p >
7580
+ Set the < code > tangentialPressure</ code > property of < var > action</ var >
7581
+ to < var > tangentialPressure</ var > .
7582
+ </ ol >
7583
+
7584
+ < li > < p > Let < var > tiltX</ var > be the result
7585
+ of getting the property < code > tiltX</ code >
7586
+ from < var > action item</ var > .
7587
+
7588
+ < li > < p > If < var > tiltX</ var > is not < a > undefined</ a > :
7589
+
7590
+ < ol >
7591
+ < li > < p >
7592
+ If < var > tiltX</ var > is not an < a > Integer</ a > in the range of [-90, 90]
7593
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7594
+
7595
+ < li > < p >
7596
+ Set the < code > tiltX</ code > property of < var > action</ var >
7597
+ to < var > tiltX</ var > .
7598
+ </ ol >
7599
+
7600
+ < li > < p > Let < var > tiltY</ var > be the result
7601
+ of getting the property < code > tiltY</ code >
7602
+ from < var > action item</ var > .
7603
+
7604
+ < li > < p > If < var > tiltY</ var > is not < a > undefined</ a > :
7605
+
7606
+ < ol >
7607
+ < li > < p >
7608
+ If < var > tiltY</ var > is not an < a > Integer</ a > in the range of [-90, 90]
7609
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7610
+
7611
+ < li > < p >
7612
+ Set the < code > tiltY</ code > property of < var > action</ var >
7613
+ to < var > tiltY</ var > .
7614
+ </ ol >
7615
+
7616
+ < li > < p > Let < var > twist</ var > be the result
7617
+ of getting the property < code > twist</ code >
7618
+ from < var > action item</ var > .
7619
+
7620
+ < li > < p > If < var > twist</ var > is not < a > undefined</ a > :
7621
+
7622
+ < ol >
7623
+ < li > < p >
7624
+ If < var > twist</ var > is not an < a > Integer</ a > in the range of [0, 359]
7625
+ return < a > error</ a > with < a > error code</ a > < a > invalid argument</ a > .
7626
+
7627
+ < li > < p >
7628
+ Set the < code > twist</ code > property of < var > action</ var >
7629
+ to < var > twist</ var > .
7630
+ </ ol >
7631
+
7632
+ < li > < p > Return success with data < a > null</ a > .
7633
+ </ ol >
7491
7634
</ section > <!-- /processing-actions -->
7492
7635
7493
7636
@@ -9168,6 +9311,7 @@ <h2>Acknowledgements</h2>
9168
9311
<!-- Sam Sneddon --> Sam Sneddon,
9169
9312
<!-- Seva Lotoshnikov --> Seva Lotoshnikov,
9170
9313
<!-- Simon Stewart --> < a href =http://www.rocketpoweredjetpants.com/ > Simon Stewart</ a > ,
9314
+ <!-- Timotius Arya Margo --> Timotius Arya Margo,
9171
9315
<!-- Titus Fortner --> Titus Fortner,
9172
9316
<!-- Vangelis Katsikaros --> and Vangelis Katsikaros.
9173
9317
0 commit comments