WebCore:
[WebKit-https.git] / WebCore / plugins / gtk / PluginViewGtk.cpp
index 423a05a..6d631e3 100644 (file)
@@ -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);