2011-02-10 Ademar de Souza Reis Jr <ademar.reis@openbossa.org>
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Feb 2011 22:32:06 +0000 (22:32 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Feb 2011 22:32:06 +0000 (22:32 +0000)
        Reviewed by Andreas Kling.

        [Qt] Ensure WebView press delay timer is cancelled when grab is taken
        https://bugs.webkit.org/show_bug.cgi?id=54242

        As reported in:
        http://bugreports.qt.nokia.com/browse/QTBUG-15529

        Flickable steals the grab, but the timer was not stopped and the
        keepGrab flag is set and the mouse grabbed. This means that the WebView
        now has the grab and subsequent clicks on another element are ignored.

        Original patch from Martin Jones <martin.jones@nokia.com>
        reviewed (there) by Joona Petrell
        52068f57f9c32098a90cc217730a530f85590f65

        * declarative/qdeclarativewebview.cpp:
        (GraphicsWebView::sceneEvent):
        * declarative/qdeclarativewebview_p.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@78270 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/qt/ChangeLog
Source/WebKit/qt/declarative/qdeclarativewebview.cpp
Source/WebKit/qt/declarative/qdeclarativewebview_p.h

index dfafe02..4b344e9 100644 (file)
@@ -2,6 +2,28 @@
 
         Reviewed by Andreas Kling.
 
+        [Qt] Ensure WebView press delay timer is cancelled when grab is taken
+        https://bugs.webkit.org/show_bug.cgi?id=54242
+
+        As reported in:
+        http://bugreports.qt.nokia.com/browse/QTBUG-15529
+
+        Flickable steals the grab, but the timer was not stopped and the
+        keepGrab flag is set and the mouse grabbed. This means that the WebView
+        now has the grab and subsequent clicks on another element are ignored.
+
+        Original patch from Martin Jones <martin.jones@nokia.com>
+        reviewed (there) by Joona Petrell
+        52068f57f9c32098a90cc217730a530f85590f65
+
+        * declarative/qdeclarativewebview.cpp:
+        (GraphicsWebView::sceneEvent):
+        * declarative/qdeclarativewebview_p.h:
+
+2011-02-10  Ademar de Souza Reis Jr  <ademar.reis@openbossa.org>
+
+        Reviewed by Andreas Kling.
+
         [Qt] Fix assert in QDeclarativeWebView
         https://bugs.webkit.org/show_bug.cgi?id=54240
 
index d74fb9a..bcc1f1c 100644 (file)
@@ -141,6 +141,16 @@ void GraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
         QGraphicsWebView::mouseMoveEvent(event);
 }
 
+bool GraphicsWebView::sceneEvent(QEvent *event)
+{
+    bool rv = QGraphicsWebView::sceneEvent(event);
+    if (event->type() == QEvent::UngrabMouse) {
+        pressTimer.stop();
+        parent->setKeepMouseGrab(false);
+    }
+    return rv;
+}
+
 /*!
     \qmlclass WebView QDeclarativeWebView
     \ingroup qml-view-elements
index b2055bf..ca15a1e 100644 (file)
@@ -70,6 +70,8 @@ protected:
     void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
     void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
     void timerEvent(QTimerEvent* event);
+    bool sceneEvent(QEvent *event);
+
 Q_SIGNALS:
     void doubleClick(int clickX, int clickY);
 private: