[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

xan at webkit.org xan at webkit.org
Wed Dec 22 13:03:14 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7535da5669e925a908d857ad45bafa8bc7beebf2
Author: xan at webkit.org <xan at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Sep 6 14:38:31 2010 +0000

    WebCore:
    
    2010-09-06  Xan Lopez  <xlopez at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [GTK] Provide Keyboard Events to Windowless plugins
            https://bugs.webkit.org/show_bug.cgi?id=44613
    
            Fix keyboard event delivery for windowless plugins.
    
            Based on a patch by Bharathwaaj.
    
            * plugins/PluginView.cpp:
            (WebCore::PluginView::handleEvent): also take into account
            focused{in,out} events
            * plugins/gtk/PluginViewGtk.cpp:
            (WebCore::PluginView::handleKeyboardEvent): we want the keyval
            here, not the hardware keycode
            (WebCore::PluginView::handleMouseEvent): focus the pluginview on mouse events
    
    LayoutTests:
    
    2010-09-06  Xan Lopez  <xlopez at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [GTK] Provide Keyboard Events to Windowless plugins
            https://bugs.webkit.org/show_bug.cgi?id=44613
    
            Unskip passing test.
    
            * platform/gtk/Skipped:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e4f1328..5fd27a2 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-06  Xan Lopez  <xlopez at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Provide Keyboard Events to Windowless plugins
+        https://bugs.webkit.org/show_bug.cgi?id=44613
+
+        Unskip passing test.
+
+        * platform/gtk/Skipped:
+
 2010-09-06  Ilya Tikhonovsky  <loislo at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index fee3329..08036e0 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -3243,9 +3243,6 @@ media/video-does-not-loop.html
 #   Tests failing
 plugins/embed-attributes-setting.html
 plugins/get-url-with-blank-target.html
-plugins/mouse-events.html
-plugins/mouse-events-fixedpos.html
-plugins/keyboard-events.html
 plugins/geturlnotify-during-document-teardown.html
 
 # This test is for clients that choose to make the missing plugin indicator a button
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 7701f15..966d1f6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-09-06  Xan Lopez  <xlopez at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Provide Keyboard Events to Windowless plugins
+        https://bugs.webkit.org/show_bug.cgi?id=44613
+
+        Fix keyboard event delivery for windowless plugins.
+
+        Based on a patch by Bharathwaaj.
+
+        * plugins/PluginView.cpp:
+        (WebCore::PluginView::handleEvent): also take into account
+        focused{in,out} events
+        * plugins/gtk/PluginViewGtk.cpp:
+        (WebCore::PluginView::handleKeyboardEvent): we want the keyval
+        here, not the hardware keycode
+        (WebCore::PluginView::handleMouseEvent): focus the pluginview on mouse events
+
 2010-09-06  Ilya Tikhonovsky  <loislo at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/WebCore/plugins/PluginView.cpp b/WebCore/plugins/PluginView.cpp
index b8b80f5..6a9eb13 100644
--- a/WebCore/plugins/PluginView.cpp
+++ b/WebCore/plugins/PluginView.cpp
@@ -168,9 +168,9 @@ void PluginView::handleEvent(Event* event)
     else if (event->isKeyboardEvent())
         handleKeyboardEvent(static_cast<KeyboardEvent*>(event));
 #if defined(XP_UNIX) && ENABLE(NETSCAPE_PLUGIN_API)
-    else if (event->type() == eventNames().DOMFocusOutEvent)
+    else if (event->type() == eventNames().DOMFocusOutEvent || event->type() == eventNames().focusoutEvent)
         handleFocusOutEvent();
-    else if (event->type() == eventNames().DOMFocusInEvent)
+    else if (event->type() == eventNames().DOMFocusInEvent || event->type() == eventNames().focusinEvent)
         handleFocusInEvent();
 #endif
 }
diff --git a/WebCore/plugins/gtk/PluginViewGtk.cpp b/WebCore/plugins/gtk/PluginViewGtk.cpp
index 423a05a..6d631e3 100644
--- a/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ b/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -33,6 +33,7 @@
 #include "Document.h"
 #include "DocumentLoader.h"
 #include "Element.h"
+#include "FocusController.h"
 #include "FrameLoader.h"
 #include "FrameLoadRequest.h"
 #include "FrameTree.h"
@@ -307,7 +308,7 @@ void PluginView::handleKeyboardEvent(KeyboardEvent* event)
     xEvent.xkey.subwindow = 0; // we have no child window
     xEvent.xkey.time = event->timeStamp();
     xEvent.xkey.state = gdkEvent->state; // GdkModifierType mirrors xlib state masks
-    xEvent.xkey.keycode = gdkEvent->hardware_keycode;
+    xEvent.xkey.keycode = gdkEvent->keyval;
     xEvent.xkey.same_screen = true;
 
     // NOTE: As the XEvents sent to the plug-in are synthesized and there is not a native window
@@ -422,6 +423,12 @@ void PluginView::handleMouseEvent(MouseEvent* event)
     if (m_isWindowed)
         return;
 
+    if (event->type() == eventNames().mousedownEvent) {
+        if (Page* page = m_parentFrame->page())
+            page->focusController()->setActive(true);
+        focusPluginElement();
+    }
+
     NPEvent xEvent;
 #if defined(XP_UNIX)
     initXEvent(&xEvent);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list