Title: [91929] trunk/Source/WebCore
Revision
91929
Author
carlo...@webkit.org
Date
2011-07-28 08:22:37 -0700 (Thu, 28 Jul 2011)

Log Message

[GTK] Copy and paste is broken in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=65252

Reviewed by Martin Robinson.

Use gtk_clipboard_get_for_display() instead of
gtk_widget_get_clipboard(), using the the default display when
there's no page client widget, which is the case of WebKit2.

* platform/gtk/PasteboardHelper.cpp:
(WebCore::displayFromFrame): Return the display of the current
frame widget or the default display if there's no widget.
(WebCore::PasteboardHelper::getClipboard):
(WebCore::PasteboardHelper::getPrimarySelectionClipboard):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (91928 => 91929)


--- trunk/Source/WebCore/ChangeLog	2011-07-28 15:13:34 UTC (rev 91928)
+++ trunk/Source/WebCore/ChangeLog	2011-07-28 15:22:37 UTC (rev 91929)
@@ -1,3 +1,20 @@
+2011-07-28  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GTK] Copy and paste is broken in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=65252
+
+        Reviewed by Martin Robinson.
+
+        Use gtk_clipboard_get_for_display() instead of
+        gtk_widget_get_clipboard(), using the the default display when
+        there's no page client widget, which is the case of WebKit2.
+
+        * platform/gtk/PasteboardHelper.cpp:
+        (WebCore::displayFromFrame): Return the display of the current
+        frame widget or the default display if there's no widget.
+        (WebCore::PasteboardHelper::getClipboard):
+        (WebCore::PasteboardHelper::getPrimarySelectionClipboard):
+
 2011-07-28  Vsevolod Vlasov  <vse...@chromium.org>
 
         Web Inspector: Add resource initiator column to network panel.

Modified: trunk/Source/WebCore/platform/gtk/PasteboardHelper.cpp (91928 => 91929)


--- trunk/Source/WebCore/platform/gtk/PasteboardHelper.cpp	2011-07-28 15:13:34 UTC (rev 91928)
+++ trunk/Source/WebCore/platform/gtk/PasteboardHelper.cpp	2011-07-28 15:22:37 UTC (rev 91929)
@@ -90,7 +90,7 @@
     gtk_target_list_unref(m_targetList);
 }
 
-static inline GtkWidget* widgetFromFrame(Frame* frame)
+static inline GdkDisplay* displayFromFrame(Frame* frame)
 {
     ASSERT(frame);
     Page* page = frame->page();
@@ -98,8 +98,7 @@
     Chrome* chrome = page->chrome();
     ASSERT(chrome);
     PlatformPageClient client = chrome->platformPageClient();
-    ASSERT(client);
-    return client;
+    return client ? gtk_widget_get_display(client) : gdk_display_get_default();
 }
 
 GtkClipboard* PasteboardHelper::getCurrentClipboard(Frame* frame)
@@ -111,12 +110,12 @@
 
 GtkClipboard* PasteboardHelper::getClipboard(Frame* frame) const
 {
-    return gtk_widget_get_clipboard(widgetFromFrame(frame), GDK_SELECTION_CLIPBOARD);
+    return gtk_clipboard_get_for_display(displayFromFrame(frame), GDK_SELECTION_CLIPBOARD);
 }
 
 GtkClipboard* PasteboardHelper::getPrimarySelectionClipboard(Frame* frame) const
 {
-    return gtk_widget_get_clipboard(widgetFromFrame(frame), GDK_SELECTION_PRIMARY);
+    return gtk_clipboard_get_for_display(displayFromFrame(frame), GDK_SELECTION_PRIMARY);
 }
 
 GtkTargetList* PasteboardHelper::targetList() const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to