summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/WebPluginContainerImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/WebPluginContainerImpl.cpp')
-rw-r--r--WebKit/chromium/src/WebPluginContainerImpl.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/WebKit/chromium/src/WebPluginContainerImpl.cpp b/WebKit/chromium/src/WebPluginContainerImpl.cpp
index 41758d2..e24e372 100644
--- a/WebKit/chromium/src/WebPluginContainerImpl.cpp
+++ b/WebKit/chromium/src/WebPluginContainerImpl.cpp
@@ -33,14 +33,18 @@
#include "Chrome.h"
#include "ChromeClientImpl.h"
+#include "WebClipboard.h"
#include "WebCursorInfo.h"
#include "WebDataSourceImpl.h"
#include "WebElement.h"
#include "WebInputEvent.h"
#include "WebInputEventConversion.h"
#include "WebKit.h"
+#include "WebKitClient.h"
#include "WebPlugin.h"
#include "WebRect.h"
+#include "WebString.h"
+#include "WebURL.h"
#include "WebURLError.h"
#include "WebURLRequest.h"
#include "WebVector.h"
@@ -57,6 +61,7 @@
#include "HTMLFormElement.h"
#include "HTMLNames.h"
#include "HTMLPlugInElement.h"
+#include "KeyboardCodes.h"
#include "KeyboardEvent.h"
#include "MouseEvent.h"
#include "Page.h"
@@ -246,9 +251,12 @@ void WebPluginContainerImpl::printEnd()
return m_webPlugin->printEnd();
}
-WebString WebPluginContainerImpl::selectedText()
+void WebPluginContainerImpl::copy()
{
- return m_webPlugin->selectedText();
+ if (!plugin()->hasSelection())
+ return;
+
+ webKitClient()->clipboard()->writeHTML(plugin()->selectionAsMarkup(), WebURL(), plugin()->selectionAsText(), false);
}
WebElement WebPluginContainerImpl::element()
@@ -441,6 +449,19 @@ void WebPluginContainerImpl::handleKeyboardEvent(KeyboardEvent* event)
if (webEvent.type == WebInputEvent::Undefined)
return;
+ if (webEvent.type == WebInputEvent::KeyDown) {
+#if defined(OS_MACOSX)
+ if (webEvent.modifiers == WebInputEvent::MetaKey
+#else
+ if (webEvent.modifiers == WebInputEvent::ControlKey
+#endif
+ && webEvent.windowsKeyCode == VKEY_C) {
+ copy();
+ event->setDefaultHandled();
+ return;
+ }
+ }
+
WebCursorInfo cursorInfo;
if (m_webPlugin->handleInputEvent(webEvent, cursorInfo))
event->setDefaultHandled();