Changeset 246716 in webkit


Ignore:
Timestamp:
Jun 22, 2019 1:09:50 PM (5 years ago)
Author:
graouts@webkit.org
Message:

[Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
https://bugs.webkit.org/show_bug.cgi?id=198999
<rdar://problem/52005663>

Reviewed by Dean Jackson.

We should only set the mouse events capturing element in EventHandler if we're dealing with mouse-originated Pointer Events.

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::processPendingPointerCapture):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r246715 r246716  
     12019-06-22  Antoine Quint  <graouts@apple.com>
     2
     3        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
     4        https://bugs.webkit.org/show_bug.cgi?id=198999
     5        <rdar://problem/52005663>
     6
     7        Reviewed by Dean Jackson.
     8
     9        We should only set the mouse events capturing element in EventHandler if we're dealing with mouse-originated Pointer Events.
     10
     11        * page/PointerCaptureController.cpp:
     12        (WebCore::PointerCaptureController::processPendingPointerCapture):
     13
    1142019-06-22  Andres Gonzalez  <andresg_22@apple.com>
    215
  • trunk/Source/WebCore/page/PointerCaptureController.cpp

    r246674 r246716  
    422422    // then fire a pointer event named lostpointercapture at the pointer capture target override node.
    423423    if (capturingData.targetOverride && capturingData.targetOverride != capturingData.pendingTargetOverride) {
    424         m_page.mainFrame().eventHandler().setCapturingMouseEventsElement(nullptr);
     424        if (event.pointerType() == PointerEvent::mousePointerType())
     425            m_page.mainFrame().eventHandler().setCapturingMouseEventsElement(nullptr);
    425426        capturingData.targetOverride->dispatchEvent(PointerEvent::createForPointerCapture(eventNames().lostpointercaptureEvent, event));
    426427    }
     
    429430    // then fire a pointer event named gotpointercapture at the pending pointer capture target override.
    430431    if (capturingData.pendingTargetOverride && capturingData.targetOverride != capturingData.pendingTargetOverride) {
    431         m_page.mainFrame().eventHandler().setCapturingMouseEventsElement(capturingData.pendingTargetOverride.get());
     432        if (event.pointerType() == PointerEvent::mousePointerType())
     433            m_page.mainFrame().eventHandler().setCapturingMouseEventsElement(capturingData.pendingTargetOverride.get());
    432434        capturingData.pendingTargetOverride->dispatchEvent(PointerEvent::createForPointerCapture(eventNames().gotpointercaptureEvent, event));
    433435    }
Note: See TracChangeset for help on using the changeset viewer.