[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

weinig at apple.com weinig at apple.com
Wed Dec 22 13:23:37 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 95f75716f74ec550e45e21b9d76ec8e5b3a38668
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Sep 14 02:03:28 2010 +0000

    Can't scroll on Bugzilla patch review pages on Mac with WebKit2
    https://bugs.webkit.org/show_bug.cgi?id=43555
    
    Reviewed by Anders Carlsson.
    
    <rdar://problem/8421386> WebKit2: gmail.com is completely unresponsive to clicks
    <rdar://problem/8276298> Can't scroll on Bugzilla patch review pages on Mac with WebKit2 (43555)
    
    * page/mac/EventHandlerMac.mm:
    (WebCore::EventHandler::passWheelEventToWidget):
    (WebCore::frameHasPlatformWidget):
    (WebCore::EventHandler::passMousePressEventToSubframe):
    (WebCore::EventHandler::passMouseMoveEventToSubframe):
    (WebCore::EventHandler::passMouseReleaseEventToSubframe):
    Add WebKit2 mode for these functions based on the presence of a platform widget for a
    FrameView.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67430 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 1e91712..cbc9774 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-09-13  Sam Weinig  <sam at webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        Can't scroll on Bugzilla patch review pages on Mac with WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=43555
+
+        <rdar://problem/8421386> WebKit2: gmail.com is completely unresponsive to clicks
+        <rdar://problem/8276298> Can't scroll on Bugzilla patch review pages on Mac with WebKit2 (43555)
+
+        * page/mac/EventHandlerMac.mm:
+        (WebCore::EventHandler::passWheelEventToWidget):
+        (WebCore::frameHasPlatformWidget):
+        (WebCore::EventHandler::passMousePressEventToSubframe):
+        (WebCore::EventHandler::passMouseMoveEventToSubframe):
+        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
+        Add WebKit2 mode for these functions based on the presence of a platform widget for a
+        FrameView.
+
 2010-09-13  Patrick Gansterer  <paroga at paroga.com>
 
         Reviewed by Kenneth Rohde Christiansen.
diff --git a/WebCore/page/mac/EventHandlerMac.mm b/WebCore/page/mac/EventHandlerMac.mm
index bb466db..1d98670 100644
--- a/WebCore/page/mac/EventHandlerMac.mm
+++ b/WebCore/page/mac/EventHandlerMac.mm
@@ -447,14 +447,25 @@ static void selfRetainingNSScrollViewScrollWheel(NSScrollView *self, SEL selecto
         [self release];
 }
 
-bool EventHandler::passWheelEventToWidget(PlatformWheelEvent&, Widget* widget)
+bool EventHandler::passWheelEventToWidget(PlatformWheelEvent& wheelEvent, Widget* widget)
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-        
-    if ([currentNSEvent() type] != NSScrollWheel || m_sendingEventToSubview || !widget) 
+
+    if (!widget)
         return false;
 
     NSView* nodeView = widget->platformWidget();
+    if (!nodeView) {
+        // WebKit2 code path.
+        if (!widget->isFrameView())
+            return false;
+
+        return static_cast<FrameView*>(widget)->frame()->eventHandler()->handleWheelEvent(wheelEvent);
+    }
+
+    if ([currentNSEvent() type] != NSScrollWheel || m_sendingEventToSubview) 
+        return false;
+
     ASSERT(nodeView);
     ASSERT([nodeView superview]);
     NSView *view = [nodeView hitTest:[[nodeView superview] convertPoint:[currentNSEvent() locationInWindow] fromView:nil]];
@@ -615,19 +626,49 @@ void EventHandler::mouseMoved(NSEvent *event)
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 
+static bool frameHasPlatformWidget(Frame* frame)
+{
+    if (FrameView* frameView = frame->view()) {
+        if (frameView->platformWidget())
+            return true;
+    }
+
+    return false;
+}
+
 bool EventHandler::passMousePressEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe)
 {
-    return passSubframeEventToSubframe(mev, subframe);
+    // WebKit1 code path.
+    if (frameHasPlatformWidget(m_frame))
+        return passSubframeEventToSubframe(mev, subframe)
+
+    // WebKit2 code path.
+    subframe->eventHandler()->handleMousePressEvent(mev.event());
+    return true;
 }
 
 bool EventHandler::passMouseMoveEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe, HitTestResult* hoveredNode)
 {
-    return passSubframeEventToSubframe(mev, subframe, hoveredNode);
+    // WebKit1 code path.
+    if (frameHasPlatformWidget(m_frame))
+        return passSubframeEventToSubframe(mev, subframe, hoveredNode);
+
+    // WebKit2 code path.
+    if (m_mouseDownMayStartDrag && !m_mouseDownWasInSubframe)
+        return false;
+    subframe->eventHandler()->handleMouseMoveEvent(mev.event(), hoveredNode);
+    return true;
 }
 
 bool EventHandler::passMouseReleaseEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe)
 {
-    return passSubframeEventToSubframe(mev, subframe);
+    // WebKit1 code path.
+    if (frameHasPlatformWidget(m_frame))
+        return passSubframeEventToSubframe(mev, subframe);
+
+    // WebKit2 code path.
+    subframe->eventHandler()->handleMouseReleaseEvent(mev.event());
+    return true;
 }
 
 PlatformMouseEvent EventHandler::currentPlatformMouseEvent() const

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list