[haiku-webkit-commits] r372 - in webkit/trunk/WebKit/haiku: API WebCoreSupport

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Fri, 02 Apr 2010 22:37:42 +0000

Author: stippi
Date: Fri Apr  2 22:37:42 2010
New Revision: 372
URL: http://mmlr.dyndns.org/changeset/372

Log:
Doh! It's handleMousePressEvent(), handleMouseReleaseEvent(), but not
handleMouseMoveEvent()! That one is semi-internal and mouseMoved() needs to be
used instead. Suddenly the tooltip and link-hovered hooks in the ChromeClient
are called. Finished the implementation for temporarily displaying the URLs
for hovered links...

Modified:
   webkit/trunk/WebKit/haiku/API/WebPage.cpp
   webkit/trunk/WebKit/haiku/API/WebPage.h
   webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp

Modified: webkit/trunk/WebKit/haiku/API/WebPage.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebPage.cpp   Fri Apr  2 21:46:52 2010        
(r371)
+++ webkit/trunk/WebKit/haiku/API/WebPage.cpp   Fri Apr  2 22:37:42 2010        
(r372)
@@ -186,6 +186,7 @@
     , fPage(0)
     , fLoadingProgress(100)
     , fStatusMessage()
+    , fDisplayedStatusMessage()
     , fPageVisible(true)
     , fPageDirty(false)
     , fToolbarsVisible(true)
@@ -565,16 +566,12 @@
     dispatchMessage(message);
 }
 
-void BWebPage::setStatusText(const BString& text)
-{
-    BMessage message(SET_STATUS_TEXT);
-    message.AddString("text", text);
-    dispatchMessage(message);
-}
-
 void BWebPage::linkHovered(const BString& url, const BString& title, const 
BString& content)
 {
-printf("BWebPage::linkHovered()\n");
+       if (url.Length())
+               setDisplayedStatusMessage(url);
+       else
+               setDisplayedStatusMessage(fStatusMessage);
 }
 
 /*static*/ void BWebPage::requestDownload(const WebCore::ResourceRequest& 
request,
@@ -789,13 +786,27 @@
 
 void BWebPage::setStatusMessage(const BString& statusMessage)
 {
+       if (fStatusMessage == statusMessage)
+               return;
+
        fStatusMessage = statusMessage;
 
+       setDisplayedStatusMessage(statusMessage);
+}
+
+void BWebPage::setDisplayedStatusMessage(const BString& statusMessage, bool 
force)
+{
+       if (fDisplayedStatusMessage == statusMessage && !force)
+               return;
+
+       fDisplayedStatusMessage = statusMessage;
+
        BMessage message(SET_STATUS_TEXT);
        message.AddString("text", statusMessage);
        dispatchMessage(message);
 }
 
+
 // #pragma mark - private
 
 void BWebPage::MessageReceived(BMessage* message)
@@ -1068,7 +1079,7 @@
         break;
     case B_MOUSE_MOVED:
     default:
-        frame->eventHandler()->handleMouseMoveEvent(event);
+        frame->eventHandler()->mouseMoved(event);
         break;
     }
 }
@@ -1183,7 +1194,7 @@
     dispatchMessage(message);
        // Send loading progress and status text notifications
     setLoadingProgress(fLoadingProgress);
-    setStatusMessage(fStatusMessage);
+    setDisplayedStatusMessage(fStatusMessage, true);
     // TODO: Other notifications...
 }
 

Modified: webkit/trunk/WebKit/haiku/API/WebPage.h
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebPage.h     Fri Apr  2 21:46:52 2010        
(r371)
+++ webkit/trunk/WebKit/haiku/API/WebPage.h     Fri Apr  2 22:37:42 2010        
(r372)
@@ -164,7 +164,6 @@
 
        void setResizable(bool);
        void closeWindow();
-       void setStatusText(const BString&);
        void linkHovered(const BString&, const BString&, const BString&);
 
        friend class BWebDownload;
@@ -186,6 +185,7 @@
 
        void setLoadingProgress(float progress);
        void setStatusMessage(const BString& message);
+       void setDisplayedStatusMessage(const BString& message, bool force = 
false);
 
 private:
        virtual                                         ~BWebPage();
@@ -221,6 +221,7 @@
 
                        float                           fLoadingProgress;
                        BString                         fStatusMessage;
+                       BString                         fDisplayedStatusMessage;
 
                    bool                                fPageVisible;
                    bool                                fPageDirty;

Modified: webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp      Fri Apr 
 2 21:46:52 2010        (r371)
+++ webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp      Fri Apr 
 2 22:37:42 2010        (r372)
@@ -269,7 +269,7 @@
 
 void ChromeClientHaiku::setStatusbarText(const String& message)
 {
-    m_webPage->setStatusText(BString(message));
+    m_webPage->setStatusMessage(BString(message));
 }
 
 bool ChromeClientHaiku::shouldInterruptJavaScript()
@@ -365,8 +365,12 @@
     if (!m_webView->LockLooper())
         return;
 
-     m_webView->SetToolTip(BString(tip).String());
-     m_webView->UnlockLooper();
+    if (!tip.length())
+        m_webView->SetToolTip(reinterpret_cast<BToolTip*>(NULL));
+    else
+        m_webView->SetToolTip(BString(tip).String());
+
+    m_webView->UnlockLooper();
 }
 
 void ChromeClientHaiku::print(Frame*)

Other related posts:

  • » [haiku-webkit-commits] r372 - in webkit/trunk/WebKit/haiku: API WebCoreSupport - webkit