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

darin at chromium.org darin at chromium.org
Wed Dec 22 11:32:48 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 2304d0eb778979f76a737cedf4053d0e55c4684a
Author: darin at chromium.org <darin at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 28 23:32:08 2010 +0000

    2010-07-28  Gene Gutnik  <gene at google.com>
    
            Reviewed by Darin Fisher.
    
            Fix mouse coordinate conversion. WindowX,Y is an absolute
            mouse coordinates within browser window, x,y - are coordinates
            relative to the plugin.
            https://bugs.webkit.org/show_bug.cgi?id=42987
    
            * src/WebInputEventConversion.cpp:
            (WebKit::WebMouseEventBuilder::WebMouseEventBuilder):
            (WebKit::WebMouseWheelEventBuilder::WebMouseWheelEventBuilder):
            * src/WebInputEventConversion.h:
            * src/WebPluginContainerImpl.cpp:
            (WebKit::WebPluginContainerImpl::handleMouseEvent):
            (WebKit::WebPluginContainerImpl::handleWheelEvent):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64243 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 435a675..4b03923 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,20 @@
+2010-07-28  Gene Gutnik  <gene at google.com>
+
+        Reviewed by Darin Fisher.
+
+        Fix mouse coordinate conversion. WindowX,Y is an absolute
+        mouse coordinates within browser window, x,y - are coordinates
+        relative to the plugin.
+        https://bugs.webkit.org/show_bug.cgi?id=42987
+
+        * src/WebInputEventConversion.cpp:
+        (WebKit::WebMouseEventBuilder::WebMouseEventBuilder):
+        (WebKit::WebMouseWheelEventBuilder::WebMouseWheelEventBuilder):
+        * src/WebInputEventConversion.h:
+        * src/WebPluginContainerImpl.cpp:
+        (WebKit::WebPluginContainerImpl::handleMouseEvent):
+        (WebKit::WebPluginContainerImpl::handleWheelEvent):
+
 2010-07-28  James Robinson  <jamesr at chromium.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/chromium/src/WebInputEventConversion.cpp b/WebKit/chromium/src/WebInputEventConversion.cpp
index fb144e0..1c6d59c 100644
--- a/WebKit/chromium/src/WebInputEventConversion.cpp
+++ b/WebKit/chromium/src/WebInputEventConversion.cpp
@@ -241,7 +241,7 @@ static int getWebInputModifiers(const UIEventWithKeyState& event)
     return modifiers;
 }
 
-WebMouseEventBuilder::WebMouseEventBuilder(const ScrollView* view, const MouseEvent& event)
+WebMouseEventBuilder::WebMouseEventBuilder(const Widget* widget, const MouseEvent& event)
 {
     if (event.type() == eventNames().mousemoveEvent)
         type = WebInputEvent::MouseMove;
@@ -283,30 +283,34 @@ WebMouseEventBuilder::WebMouseEventBuilder(const ScrollView* view, const MouseEv
             break;
         }
     }
-    IntPoint p = view->contentsToWindow(IntPoint(event.pageX(), event.pageY()));
+    ScrollView* view = widget->parent();
+    IntPoint p = view->contentsToWindow(
+        IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y()));
     globalX = event.screenX();
     globalY = event.screenY();
     windowX = p.x();
     windowY = p.y();
-    x = event.offsetX();
-    y = event.offsetY();
+    x = event.absoluteLocation().x() - widget->pos().x();
+    y = event.absoluteLocation().y() - widget->pos().y();
     clickCount = event.detail();
 }
 
-WebMouseWheelEventBuilder::WebMouseWheelEventBuilder(const ScrollView* view, const WheelEvent& event)
+WebMouseWheelEventBuilder::WebMouseWheelEventBuilder(const Widget* widget, const WheelEvent& event)
 {
     if (event.type() != eventNames().mousewheelEvent)
         return;
     type = WebInputEvent::MouseWheel;
     timeStampSeconds = event.timeStamp() * 1.0e-3;
     modifiers = getWebInputModifiers(event);
-    IntPoint p = view->contentsToWindow(IntPoint(event.pageX(), event.pageY()));
+    ScrollView* view = widget->parent();
+    IntPoint p = view->contentsToWindow(
+        IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y()));
     globalX = event.screenX();
     globalY = event.screenY();
     windowX = p.x();
     windowY = p.y();
-    x = event.offsetX();
-    y = event.offsetY();
+    x = event.absoluteLocation().x() - widget->pos().x();
+    y = event.absoluteLocation().y() - widget->pos().y();
     deltaX = static_cast<float>(event.rawDeltaX());
     deltaY = static_cast<float>(event.rawDeltaY());
     // The 120 is from WheelEvent::initWheelEvent().
diff --git a/WebKit/chromium/src/WebInputEventConversion.h b/WebKit/chromium/src/WebInputEventConversion.h
index dc5db35..63991a9 100644
--- a/WebKit/chromium/src/WebInputEventConversion.h
+++ b/WebKit/chromium/src/WebInputEventConversion.h
@@ -91,14 +91,14 @@ public:
 // be set to Undefined.
 class WebMouseEventBuilder : public WebMouseEvent {
 public:
-    WebMouseEventBuilder(const WebCore::ScrollView*, const WebCore::MouseEvent&);
+    WebMouseEventBuilder(const WebCore::Widget*, const WebCore::MouseEvent&);
 };
 
 // Converts a WebCore::WheelEvent to a corresponding WebMouseWheelEvent.
 // If the event mapping fails, the event type will be set to Undefined.
 class WebMouseWheelEventBuilder : public WebMouseWheelEvent {
 public:
-    WebMouseWheelEventBuilder(const WebCore::ScrollView*, const WebCore::WheelEvent&);
+    WebMouseWheelEventBuilder(const WebCore::Widget*, const WebCore::WheelEvent&);
 };
 
 // Converts a WebCore::KeyboardEvent to a corresponding WebKeyboardEvent.
diff --git a/WebKit/chromium/src/WebPluginContainerImpl.cpp b/WebKit/chromium/src/WebPluginContainerImpl.cpp
index e24e372..7f74db2 100644
--- a/WebKit/chromium/src/WebPluginContainerImpl.cpp
+++ b/WebKit/chromium/src/WebPluginContainerImpl.cpp
@@ -403,7 +403,7 @@ void WebPluginContainerImpl::handleMouseEvent(MouseEvent* event)
     // in the call to HandleEvent. See http://b/issue?id=1362948
     FrameView* parentView = static_cast<FrameView*>(parent());
 
-    WebMouseEventBuilder webEvent(parentView, *event);
+    WebMouseEventBuilder webEvent(this, *event);
     if (webEvent.type == WebInputEvent::Undefined)
         return;
 
@@ -433,8 +433,7 @@ void WebPluginContainerImpl::handleMouseEvent(MouseEvent* event)
 
 void WebPluginContainerImpl::handleWheelEvent(WheelEvent* event)
 {
-    FrameView* parentView = static_cast<FrameView*>(parent());
-    WebMouseWheelEventBuilder webEvent(parentView, *event);
+    WebMouseWheelEventBuilder webEvent(this, *event);
     if (webEvent.type == WebInputEvent::Undefined)
         return;
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list