[Bug 24971] Should got/lostpointercapture be dispatched asynchronously or synchronously

https://www.w3.org/Bugs/Public/show_bug.cgi?id=24971

--- Comment #5 from Jacob Rossi [MSFT] <jrossi@microsoft.com> ---
It's not truly "async" in the "queue a task" sense. The way IE does this is to
set a "pending capture node" when setPointerCapture() is called.  When it comes
time to fire the next pointer event, we check to see if the pointer has a
pending capture node. If it does, then we fire the gotpointercapture event
prior to firing the next pointer event.

We could make the spec capture this behavior more succinctly with a relatively
simple change:

1. Remove step 4 from sections 10.1 and 10.2
2. Change step 3 of 10.1 and 10.2 to set and clear the 'pending pointer
capture' node for the pointer, respectively
3. In section 5.2.1, add a step such that when you are to fire a pointer event,
you first:
   "1. If the 'pointer capture target override' for this pointer is set and is
not equal to the 'pending pointer capture' node, then fire a pointer event
named lostpointercapture at the 'pointer capture target override' node.
   2. If the 'pending pointer capture' node for this pointer is set and is not
equal to the 'pointer capture target override', then fire a pointer event named
gotpointercapture at the 'pending pointer capture' node.
   3. Set the 'pointer capture target override' to the 'pending pointer
capture' node, if set. Otherwise, clear the 'pointer capture target override'."
4. Remove "queue a task to" from sections 5.2.11 and 5.2.12


This would also effectively resolve Bug 25147, I believe:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25147

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Tuesday, 15 April 2014 04:32:29 UTC