[Webkit-unassigned] [Bug 143749] Force mouse events should go through normal mouse event handling code paths
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Apr 15 09:13:34 PDT 2015
https://bugs.webkit.org/show_bug.cgi?id=143749
--- Comment #3 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
Comment on attachment 250777
--> https://bugs.webkit.org/attachment.cgi?id=250777
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=250777&action=review
I would love to see some testing added in this page. I worry that if we don't add testing now, we'll never add it.
> Source/WebCore/dom/Element.cpp:257
> + if (platformEvent.type() == PlatformEvent::MouseForceChanged && !document().hasListenerType(Document::FORCECHANGED_LISTENER))
> + return false;
> + if (platformEvent.type() == PlatformEvent::MouseForceDown && !document().hasListenerType(Document::FORCEDOWN_LISTENER))
> + return false;
> + if (platformEvent.type() == PlatformEvent::MouseForceUp && !document().hasListenerType(Document::FORCEUP_LISTENER))
> + return false;
A little helper that maps Document::*_LISTENER to PlatformEvent::Mouse* types would make this cleaner.
> Source/WebCore/page/EventHandler.cpp:2116
> + if (m_frameSetBeingResized)
> + return !dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, m_frameSetBeingResized.get(), false, 0, event, false);
Weird. What's this about?
> Source/WebCore/page/EventHandler.cpp:2135
> + if (m_frameSetBeingResized) {
> + dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + return !dispatchMouseEvent(eventNames().webkitmouseforcedownEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + }
Same.
> Source/WebCore/page/EventHandler.cpp:2164
> +bool EventHandler::handleMouseForceUpEvent(const PlatformMouseEvent& event)
> +{
> + RefPtr<FrameView> protector(m_frame.view());
> +
> + setLastKnownMousePosition(event);
> +
> + if (m_frameSetBeingResized) {
> + dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + return !dispatchMouseEvent(eventNames().webkitmouseforceupEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + }
> +
> + HitTestRequest::HitTestRequestType hitType = HitTestRequest::DisallowShadowContent | HitTestRequest::Active;
> +
> + HitTestRequest request(hitType);
> + MouseEventWithHitTestResults mouseEvent = prepareMouseEvent(request, event);
> +
> + dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, mouseEvent.targetNode(), false, 0, event, false);
> + return !dispatchMouseEvent(eventNames().webkitmouseforceupEvent, mouseEvent.targetNode(), false, 0, event, false);
> +}
Lots of very similar-looking code here. Can it be shared?
> Source/WebCore/page/EventHandler.cpp:2178
> +bool EventHandler::handleMouseForceChangedEvent(const PlatformMouseEvent& )
> +{
> +}
> +
> +bool EventHandler::handleMouseForceDownEvent(const PlatformMouseEvent&)
> +{
> +}
> +
> +bool EventHandler::handleMouseForceUpEvent(const PlatformMouseEvent&)
> +{
> +}
These need to return false.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150415/06d7a8b9/attachment.html>
More information about the webkit-unassigned
mailing list