@@ -195,6 +195,10 @@ <h2>Terminology</h2>
195195An < dfn > integer</ dfn > is a < a > Number</ a > that is unchanged
196196under the < a > ToInteger</ a > operation.
197197
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+
198202< p >
199203The < dfn > initial value</ dfn > of an ECMAScript property
200204is the value defined by the platform for that property,
@@ -6894,8 +6898,7 @@ <h3 id=input-source-state>State</h3>
68946898 and < code > alt</ code > , < code > shift</ code > , < code > ctrl</ code > ,
68956899 and < code > meta</ code > all set to < code > false</ code > .
68966900
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 >
68996902is a < dfn > pointer input state</ dfn > object.
69006903This consists of a < code > subtype</ code > property,
69016904which has the possible values
@@ -6905,12 +6908,20 @@ <h3 id=input-source-state>State</h3>
69056908a < code > pressed</ code > property which is a set of unsigned integers,
69066909an < code > x</ code > property which is an unsigned integer,
69076910and 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]].
69086916
69096917< p > When required to < dfn > create a new pointer input state</ dfn > object
69106918 with arguments < var > subtype</ var > an implementation must return
69116919 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.
69146925
69156926< p > Each < a > session</ a > has an associated < dfn > input state table</ dfn > .
69166927 This is a map between < a > input id</ a >
@@ -7032,7 +7043,7 @@ <h3>Ticks</h3>
70327043will have the < a > < code > isTrusted</ code > </ a > attribute set to true.
70337044
70347045< p >
7035- The most robust way to despatch these events
7046+ The most robust way to dispatch these events
70367047is by creating them in the browser implementation itself.
70377048Sending operating system specific input messages to the browser’s window
70387049has the disadvantage that the browser being automated
@@ -7392,6 +7403,12 @@ <h2>Processing actions</h2>
73927403< var > action item</ var > and < var > action</ var > .
73937404If doing so results in an < a > error</ a > , return that < a > error</ a > .
73947405
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+
73957412< li > < p >
73967413If < var > subtype</ var > is "< code > pointerCancel</ code > "
73977414< span class =issue > process a pointer cancel action</ span > .
@@ -7494,6 +7511,132 @@ <h2>Processing actions</h2>
74947511
74957512 < li > < p > Return success with data < a > null</ a > .
74967513</ 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 >
74977640</ section > <!-- /processing-actions -->
74987641
74997642
@@ -9174,6 +9317,7 @@ <h2>Acknowledgements</h2>
91749317<!-- Randall Kent --> Randall Kent,
91759318<!-- Seva Lotoshnikov --> Seva Lotoshnikov,
91769319<!-- Simon Stewart --> < a href =http://www.rocketpoweredjetpants.com/ > Simon Stewart</ a > ,
9320+ <!-- Timotius Arya Margo --> Timotius Arya Margo,
91779321<!-- Titus Fortner --> Titus Fortner,
91789322<!-- Vangelis Katsikaros --> and Vangelis Katsikaros.
91799323
0 commit comments