Ariya Hidayat <ariya.hidayat@trolltech.com>
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Apr 2008 08:51:16 +0000 (08:51 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Apr 2008 08:51:16 +0000 (08:51 +0000)
Update the cursor when the frame/page loading is finished.

This fixes https://bugs.webkit.org/show_bug.cgi?id=18712

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

WebKit/qt/ChangeLog
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp

index dbd9564..db26cc4 100644 (file)
@@ -1,3 +1,16 @@
+2008-04-29  Ariya Hidayat  <ariya.hidayat@trolltech.com>
+
+        Reviewed by Simon.
+
+        Update the cursor when the frame/page loading is finished.
+        
+        This fixes https://bugs.webkit.org/show_bug.cgi?id=18712
+        
+
+        * WebCoreSupport/FrameLoaderClientQt.cpp:
+        (WebCore::FrameLoaderClientQt::postProgressFinishedNotification):
+        (WebCore::FrameLoaderClientQt::setMainFrameDocumentReady):
+
 2008-04-29  Simon Hausmann  <shausman@trolltech.com>
 
         Reviewed by Holger.
index e04292b..d24138c 100644 (file)
@@ -468,6 +468,20 @@ void FrameLoaderClientQt::postProgressEstimateChangedNotification()
 
 void FrameLoaderClientQt::postProgressFinishedNotification()
 {
+    // send a mousemove event to 
+    // (1) update the cursor to change according to whatever is underneath the mouse cursor right now
+    // (2) display the tool tip if the mouse hovers a node which has a tool tip
+    if (m_frame && m_frame->eventHandler() && m_webFrame->page()) {
+        QWidget* view = m_webFrame->page()->view();
+        if (view && view->hasFocus()) {
+            QPoint localPos = view->mapFromGlobal(QCursor::pos());
+            if (view->rect().contains(localPos)) {
+                QMouseEvent event(QEvent::MouseMove, localPos, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
+                m_frame->eventHandler()->mouseMoved(PlatformMouseEvent(&event, 0));
+            }
+        }
+    }
+
     if (m_webFrame && m_frame->page())
         emit loadFinished(m_loadSucceeded);
 }