Title: [122835] trunk/Source/WebKit2
- Revision
- 122835
- Author
- carlo...@webkit.org
- Date
- 2012-07-17 04:11:55 -0700 (Tue, 17 Jul 2012)
Log Message
[GTK] Paste primary selection when middle clicking in X11 WebKit2
https://bugs.webkit.org/show_bug.cgi?id=91411
Reviewed by Xan Lopez.
Handle middle click events to paste primary selection as expected
in any X11 application.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::handleMouseEvent): Call handleMousePressedEvent() for GTK+
platform.
* WebProcess/WebPage/WebPage.h:
(WebPage): Add handleMousePressedEvent() for GTK+ platform.
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::handleMousePressedEvent): Handle middle click
events to paste primary selection like we do in WebKit1.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (122834 => 122835)
--- trunk/Source/WebKit2/ChangeLog 2012-07-17 10:58:50 UTC (rev 122834)
+++ trunk/Source/WebKit2/ChangeLog 2012-07-17 11:11:55 UTC (rev 122835)
@@ -1,3 +1,22 @@
+2012-07-17 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] Paste primary selection when middle clicking in X11 WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=91411
+
+ Reviewed by Xan Lopez.
+
+ Handle middle click events to paste primary selection as expected
+ in any X11 application.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleMouseEvent): Call handleMousePressedEvent() for GTK+
+ platform.
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage): Add handleMousePressedEvent() for GTK+ platform.
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::handleMousePressedEvent): Handle middle click
+ events to paste primary selection like we do in WebKit1.
+
2012-07-17 Ryuan Choi <ryuan.c...@samsung.com>
[EFL] Move codes related to theme setting from Widget to RenderTheme
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (122834 => 122835)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2012-07-17 10:58:50 UTC (rev 122834)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2012-07-17 11:11:55 UTC (rev 122835)
@@ -1339,6 +1339,10 @@
if (isContextClick(platformMouseEvent))
handled = handleContextMenuEvent(platformMouseEvent, page);
#endif
+#if PLATFORM(GTK)
+ bool gtkMouseButtonPressHandled = page->handleMousePressedEvent(platformMouseEvent);
+ handled = handled || gtkMouseButtonPressHandled;
+#endif
return handled;
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (122834 => 122835)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2012-07-17 10:58:50 UTC (rev 122834)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2012-07-17 11:11:55 UTC (rev 122835)
@@ -449,6 +449,7 @@
#elif PLATFORM(GTK)
void updateAccessibilityTree();
+ bool handleMousePressedEvent(const WebCore::PlatformMouseEvent&);
#if USE(TEXTURE_MAPPER_GL)
void widgetMapped(int64_t nativeWindowHandle);
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp (122834 => 122835)
--- trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp 2012-07-17 10:58:50 UTC (rev 122834)
+++ trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp 2012-07-17 11:11:55 UTC (rev 122835)
@@ -37,6 +37,7 @@
#include <WebCore/Frame.h>
#include <WebCore/KeyboardEvent.h>
#include <WebCore/Page.h>
+#include <WebCore/PasteboardHelper.h>
#include <WebCore/PlatformKeyboardEvent.h>
#include <WebCore/Settings.h>
#include <wtf/gobject/GOwnPtr.h>
@@ -159,7 +160,31 @@
{
m_nativeWindowHandle = nativeWindowHandle;
}
+#endif
+bool WebPage::handleMousePressedEvent(const PlatformMouseEvent& platformMouseEvent)
+{
+ bool returnValue = false;
+ if (platformMouseEvent.button() != WebCore::MiddleButton)
+ return returnValue;
+
+#if PLATFORM(X11)
+ Frame* frame = m_page->focusController()->focusedOrMainFrame();
+ if (!frame)
+ return returnValue;
+
+ PasteboardHelper* pasteboardHelper = PasteboardHelper::defaultPasteboardHelper();
+ bool wasUsingPrimary = pasteboardHelper->usePrimarySelectionClipboard();
+ pasteboardHelper->setUsePrimarySelectionClipboard(true);
+
+ Editor* editor = frame->editor();
+ returnValue = editor->canPaste() || editor->canDHTMLPaste();
+ editor->paste();
+
+ pasteboardHelper->setUsePrimarySelectionClipboard(wasUsingPrimary);
#endif
+ return returnValue;
+}
+
} // namespace WebKit
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes