- From: James <notifications@github.com>
- Date: Wed, 21 Oct 2020 16:50:34 -0700
- To: w3c/pointerlock <pointerlock@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/pointerlock/pull/49/review/507810431@github.com>
@JamesHollyer commented on this pull request.
Thanks again. Can you find any other things that need fixing?
> - technologies like screen magnifiers.
- </p>
+ <section>
+ <h3>
+ The <dfn>pointer lock state</dfn> Definition
+ </h3>
+ <p><a>Pointer lock state</a> is the state where a single DOM element, which
+ we will call the <dfn>pointer-lock target</dfn>, receives all mouse events and the cursor
+ is hidden.</p>
+ <p>
+ Once in the <a>pointer lock state</a> the <a>user agent</a> has a
+ <a>pointer-lock target</a>, a <dfn>pointer-lock options</dfn>, which is a <a>PointerLockOptions</a> and, a
+ <dfn>cursor position</dfn> which is a pair of numbers representing the location of the system mouse
+ cursor when the Pointer Lock State was entered(the same location that is reported in <code>screenX</code>,
+ <code>screenY</code>). The <a>pointer-lock target</a> must receive all relevant user generated {{MouseEvent}}
+ events. The <a>pointer-lock target</a> will receive all `mousemove`, `mousedown`, `mouseup`, `click`, `dblclick`,
That is correct.
> + <a>pointer lock state</a>. Events that require the concept of a mouse cursor must not be dispatched. The events
+ `mouseenter`, `mouseleave`, `mouseover`, `mouseout`, `drag`, and `drop` will not be dispatched.
Any target. I combined the sentences.
> - mouse events to other elements. Events that require the concept of
- a mouse cursor must not be dispatched (for example: `mouseover`,
- `mouseout`, `drag`, and `drop`).
- </p>
- <p>
- In the locked state the system mouse cursor must be hidden.
- Movement and button presses of the mouse must not cause the window
- to lose focus.
- </p>
- <p>
- Synthetic mouse events created by application script act the same
- regardless of lock state.
+ Perform the following steps:
+ <ol>
+ <li>
+ Return a <a href="https://heycam.github.io/webidl/#idl-promise">Promise</a></li>
Done.
> + focus by the operating system's window manager:
+ <ol>
+ 1. <a href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-an-element-task">
+ Queue an element task</a> on the
+ <a href="https://html.spec.whatwg.org/multipage/webappapis.html#user-interaction-task-source">
+ user Interaction task source</a>, given this, to perform the following steps:
+ <ol>
+ <li>
+ <a href=https://dom.spec.whatwg.org/#concept-event-fire">Fire an event</a> named
+ <a>pointerlockerror</a> at <a>this</a>'s
+ <a href="https://dom.spec.whatwg.org/#concept-node-document">node document</a>.
+ </li>
+ <li>
+ <a>Reject</a> the promise with a "{{WrongDocumentError}}" {{DOMException}}.
+ </li>
+ </ol>
I added return promise to all sections that Queue an element task. and Changed references to "the promise to explicitly reference the promise in the initial step.
> + </li>
+ <li>
+ <a>Reject</a> the promise with a "{{NotSupportedError}}" {{DOMException}}.
+ </li>
+ </ol>
+ </ol>
+ </li>
+ <li>
+ If <a>options</a> are not equivalent to the current <a>pointer-lock options</a> and
+ <a>options</a> are supported then perform the following steps
+ <ol type='i'>
+ <li>
+ The user agent's <a>pointer-lock target</a> must be updated to this element
+ </li>
+ <li>
+ The user agent's <a>pointer-lock target</a> must be updated to this element
oops. Removed
> + </li>
+ <li>
+ If <a>options</a> are not equivalent to the current <a>pointer-lock options</a> and
+ <a>options</a> are supported then perform the following steps
+ <ol type='i'>
+ <li>
+ The user agent's <a>pointer-lock target</a> must be updated to this element
+ </li>
+ <li>
+ The user agent's <a>pointer-lock target</a> must be updated to this element
+ </li>
+ <li>
+ The current <a>pointer-lock options</a> must be updated to <a>options</a>
+ </li>
+ <li>
+ a <a>pointerlockchange</a> event must be sent
Done.
> + The current <a>pointer-lock options</a> must be updated to <a>options</a>
+ </li>
+ <li>
+ a <a>pointerlockchange</a> event must be sent
+ </li>
+ <li>
+ the promise must <a>resolve</a>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ <li>
+ If any element (including this one), whose <a>shadow-including
+ root</a> is same as this element's <a>shadow-including root</a> and, is
+ already locked (or pending lock) then perform the following steps
Done.
> @@ -331,18 +609,15 @@ <h2>
<dfn>exitPointerLock()</dfn> method
</dt>
<dd>
- <p>
- Initiates an exit from pointer lock state if currently locked to a
- target whose <a>shadow-including root</a> is this document, and
- sends a <a>pointerlockchange</a> event when the lock state has been
- exited.
- </p>
- <p>
- The system mouse cursor must be displayed again and positioned at
- the same location that it was when pointer lock was entered (the
- same location that is reported in <code>screenX</code>,
- <code>screenY</code>, when the pointer is locked).
- </p>
+ <ol>
+ <li>
Added.
> - target whose <a>shadow-including root</a> is this document, and
- sends a <a>pointerlockchange</a> event when the lock state has been
- exited.
- </p>
- <p>
- The system mouse cursor must be displayed again and positioned at
- the same location that it was when pointer lock was entered (the
- same location that is reported in <code>screenX</code>,
- <code>screenY</code>, when the pointer is locked).
- </p>
+ <ol>
+ <li>
+ If <a>pointer-lock target</a> is not in the same <a>shadow-including root</a> as <a>this</a>'s document, return.
+ </li>
+ <li>
+ if currently locked to a target whose <a>shadow-including root</a> is this document <a>exit pointer lock</a>
Done.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/pointerlock/pull/49#pullrequestreview-507810431
Received on Wednesday, 21 October 2020 23:50:48 UTC