Title: [87689] trunk/Source/WebKit2
Revision
87689
Author
[email protected]
Date
2011-05-30 09:17:56 -0700 (Mon, 30 May 2011)

Log Message

2011-05-30  Anders Carlsson  <[email protected]>

        Reviewed by Simon Fraser.

        Remove incorrect asserts from PluginProcessConnection
        https://bugs.webkit.org/show_bug.cgi?id=61731

        There might be pending incoming messages from a PluginProxy even though we've
        destroyed the plug-in and removed it from the m_plugins map, so remove the incorrect assertions.

        * WebProcess/Plugins/PluginProcessConnection.cpp:
        (WebKit::PluginProcessConnection::didReceiveMessage):
        (WebKit::PluginProcessConnection::didReceiveSyncMessage):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (87688 => 87689)


--- trunk/Source/WebKit2/ChangeLog	2011-05-30 16:14:29 UTC (rev 87688)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-30 16:17:56 UTC (rev 87689)
@@ -16,6 +16,23 @@
 
         Reviewed by Martin Robinson.
 
+        [GTK] Initial tooltips implementation for WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=59318
+
+        * UIProcess/API/gtk/PageClientImpl.cpp:
+        (WebKit::PageClientImpl::toolTipChanged): Update view's tooltip
+        text.
+        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+        (webkitWebViewBaseQueryTooltip): Implement GtkWidget::query-tooltip.
+        (webkit_web_view_base_class_init): Override GtkWidget::query-tooltip.
+        (webkitWebViewBaseSetTooltipText): Update tooltip text and trigger
+        GtkWidget::query-tooltip.
+        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+
+2011-05-30  Carlos Garcia Campos  <[email protected]>
+
+        Reviewed by Martin Robinson.
+
         [GTK] Remove some unneeded header includes
         https://bugs.webkit.org/show_bug.cgi?id=60536
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp (87688 => 87689)


--- trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp	2011-05-30 16:14:29 UTC (rev 87688)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp	2011-05-30 16:17:56 UTC (rev 87689)
@@ -128,9 +128,9 @@
     notImplemented();
 }
 
-void PageClientImpl::toolTipChanged(const String&, const String&)
+void PageClientImpl::toolTipChanged(const String&, const String& newToolTip)
 {
-    notImplemented();
+    webkitWebViewBaseSetTooltipText(WEBKIT_WEB_VIEW_BASE(m_viewWidget), newToolTip.utf8().data());
 }
 
 void PageClientImpl::setCursor(const Cursor& cursor)

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (87688 => 87689)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2011-05-30 16:14:29 UTC (rev 87688)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2011-05-30 16:17:56 UTC (rev 87689)
@@ -44,6 +44,7 @@
 #include "WebKitWebViewBasePrivate.h"
 #include "WebPageProxy.h"
 #include <WebKit2/WKContext.h>
+#include <wtf/text/CString.h>
 
 using namespace WebKit;
 using namespace WebCore;
@@ -54,6 +55,7 @@
     gboolean isPageActive;
     GtkIMContext* imContext;
     GtkClickCounter clickCounter;
+    CString tooltipText;
 };
 
 G_DEFINE_TYPE(WebKitWebViewBase, webkit_web_view_base, GTK_TYPE_CONTAINER)
@@ -282,6 +284,27 @@
     return FALSE;
 }
 
+#if GTK_CHECK_VERSION(2, 12, 0)
+static gboolean webkitWebViewBaseQueryTooltip(GtkWidget* widget, gint x, gint y, gboolean keyboardMode, GtkTooltip* tooltip)
+{
+    WebKitWebViewBasePrivate* priv = WEBKIT_WEB_VIEW_BASE(widget)->priv;
+
+    if (keyboardMode) {
+        // TODO: https://bugs.webkit.org/show_bug.cgi?id=61732.
+        notImplemented();
+        return FALSE;
+    }
+
+    if (priv->tooltipText.length() <= 0)
+        return FALSE;
+
+    // TODO: set the tip area when WKPageMouseDidMoveOverElementCallback
+    // receives a hit test result.
+    gtk_tooltip_set_text(tooltip, priv->tooltipText.data());
+    return TRUE;
+}
+#endif
+
 static void webkit_web_view_base_class_init(WebKitWebViewBaseClass* webkitWebViewBaseClass)
 {
     GtkWidgetClass* widgetClass = GTK_WIDGET_CLASS(webkitWebViewBaseClass);
@@ -300,6 +323,9 @@
     widgetClass->button_release_event = webkitWebViewBaseButtonReleaseEvent;
     widgetClass->scroll_event = webkitWebViewBaseScrollEvent;
     widgetClass->motion_notify_event = webkitWebViewBaseMotionNotifyEvent;
+#if GTK_CHECK_VERSION(2, 12, 0)
+    widgetClass->query_tooltip = webkitWebViewBaseQueryTooltip;
+#endif
 
     GObjectClass* gobjectClass = G_OBJECT_CLASS(webkitWebViewBaseClass);
     gobjectClass->finalize = webkitWebViewBaseFinalize;
@@ -328,3 +354,23 @@
 {
     return webkitWebViewBase->priv->pageProxy.get();
 }
+
+void webkitWebViewBaseSetTooltipText(WebKitWebViewBase* webViewBase, const char* tooltip)
+{
+#if GTK_CHECK_VERSION(2, 12, 0)
+    WebKitWebViewBasePrivate* priv = webViewBase->priv;
+    if (tooltip && tooltip[0] != '\0') {
+        priv->tooltipText = tooltip;
+        gtk_widget_set_has_tooltip(GTK_WIDGET(webViewBase), TRUE);
+    } else {
+        priv->tooltipText = "";
+        gtk_widget_set_has_tooltip(GTK_WIDGET(webViewBase), FALSE);
+    }
+
+    gtk_widget_trigger_tooltip_query(GTK_WIDGET(webViewBase));
+#else
+    // TODO: Support older GTK+ versions
+    // See http://bugs.webkit.org/show_bug.cgi?id=15793
+    notImplemented();
+#endif
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h (87688 => 87689)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h	2011-05-30 16:14:29 UTC (rev 87688)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h	2011-05-30 16:17:56 UTC (rev 87689)
@@ -41,6 +41,8 @@
 
 WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase*);
 
+void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*);
+
 G_END_DECLS
 
 #endif // WebKitWebViewBasePrivate_h
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to