mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add support for intercepting key events (Issue #63, patch by cpinfold.joinerysoft)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@70 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -102,6 +102,7 @@ using WebKit::WebView;
|
||||
using WebKit::WebWidget;
|
||||
using WebKit::WebWorker;
|
||||
using WebKit::WebWorkerClient;
|
||||
using WebKit::WebKeyboardEvent;
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -223,6 +224,35 @@ bool BrowserWebViewDelegate::isSelectTrailingWhitespaceEnabled() {
|
||||
}
|
||||
|
||||
bool BrowserWebViewDelegate::handleCurrentKeyboardEvent() {
|
||||
CefHandler::RetVal rv = RV_CONTINUE;
|
||||
CefRefPtr<CefHandler> handler = browser_->GetHandler();
|
||||
if (handler.get()) {
|
||||
WebWidgetHost* host = GetWidgetHost();
|
||||
if (host) {
|
||||
WebKeyboardEvent event = host->GetLastKeyEvent();
|
||||
switch (event.type)
|
||||
{
|
||||
case WebKeyboardEvent::RawKeyDown:
|
||||
rv = handler->HandleKeyEvent(browser_,
|
||||
KEYEVENT_RAWKEYDOWN, event.windowsKeyCode,
|
||||
event.modifiers, event.isSystemKey?true:false);
|
||||
break;
|
||||
case WebKeyboardEvent::KeyUp:
|
||||
rv = handler->HandleKeyEvent(browser_,
|
||||
KEYEVENT_KEYUP, event.windowsKeyCode,
|
||||
event.modifiers, event.isSystemKey?true:false);
|
||||
break;
|
||||
case WebKeyboardEvent::Char:
|
||||
rv = handler->HandleKeyEvent(browser_,
|
||||
KEYEVENT_CHAR, event.windowsKeyCode,
|
||||
event.modifiers, event.isSystemKey?true:false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rv == RV_HANDLED)
|
||||
return true;
|
||||
|
||||
if (edit_command_name_.empty())
|
||||
return false;
|
||||
|
||||
|
Reference in New Issue
Block a user