Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(742)

Unified Diff: webkit/glue/webview_impl.cc

Issue 27332: Fixing WebKeyboardEvent. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/glue/webinputevent_win.cc ('k') | webkit/glue/webwidget_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/webview_impl.cc
===================================================================
--- webkit/glue/webview_impl.cc (revision 10793)
+++ webkit/glue/webview_impl.cc (working copy)
@@ -480,7 +480,8 @@
}
bool WebViewImpl::KeyEvent(const WebKeyboardEvent& event) {
- DCHECK((event.type == WebInputEvent::KEY_DOWN) ||
+ DCHECK((event.type == WebInputEvent::RAW_KEY_DOWN) ||
+ (event.type == WebInputEvent::KEY_DOWN) ||
(event.type == WebInputEvent::KEY_UP));
// Please refer to the comments explaining the suppress_next_keypress_event_
@@ -505,9 +506,9 @@
#if defined(OS_WIN)
// TODO(pinkerton): figure out these keycodes on non-windows
- if (((event.modifiers == 0) && (event.key_code == VK_APPS)) ||
+ if (((event.modifiers == 0) && (event.windows_key_code == VK_APPS)) ||
((event.modifiers == WebInputEvent::SHIFT_KEY) &&
- (event.key_code == VK_F10))) {
+ (event.windows_key_code == VK_F10))) {
SendContextMenuEvent(event);
return true;
}
@@ -515,11 +516,8 @@
MakePlatformKeyboardEvent evt(event);
-#if !defined(OS_MACOSX)
- if (WebInputEvent::KEY_DOWN == event.type) {
- MakePlatformKeyboardEvent evt_rawkeydown = evt;
- evt_rawkeydown.SetKeyType(WebCore::PlatformKeyboardEvent::RawKeyDown);
- if (handler->keyEvent(evt_rawkeydown) && !evt_rawkeydown.isSystemKey()) {
+ if (WebInputEvent::RAW_KEY_DOWN == event.type) {
+ if (handler->keyEvent(evt) && !evt.isSystemKey()) {
suppress_next_keypress_event_ = true;
return true;
}
@@ -528,19 +526,6 @@
return true;
}
}
-#else
- // Windows and Cocoa handle events in rather different ways. On Windows,
- // you get two events: WM_KEYDOWN/WM_KEYUP and WM_CHAR. In
- // PlatformKeyboardEvent, RawKeyDown represents the raw messages. When
- // processing them, we don't process text editing events, since we'll be
- // getting the data soon enough. In Cocoa, we get one event with both the
- // raw and processed data. Therefore we need to keep the type as KeyDown, so
- // that we'll know that this is the only time we'll have the event and that
- // we need to do our thing.
- if (handler->keyEvent(evt)) {
- return true;
- }
-#endif
return KeyEventDefault(event);
}
@@ -548,18 +533,19 @@
bool WebViewImpl::AutocompleteHandleKeyEvent(const WebKeyboardEvent& event) {
if (!autocomplete_popup_showing_ ||
// Home and End should be left to the text field to process.
- event.key_code == base::VKEY_HOME || event.key_code == base::VKEY_END) {
+ event.windows_key_code == base::VKEY_HOME ||
+ event.windows_key_code == base::VKEY_END) {
return false;
}
- if (!autocomplete_popup_->isInterestedInEventForKey(event.key_code))
+ if (!autocomplete_popup_->isInterestedInEventForKey(event.windows_key_code))
return false;
if (autocomplete_popup_->handleKeyEvent(MakePlatformKeyboardEvent(event))) {
#if defined(OS_WIN)
// We need to ignore the next CHAR event after this otherwise pressing
// enter when selecting an item in the menu will go to the page.
- if (WebInputEvent::KEY_DOWN == event.type)
+ if (WebInputEvent::RAW_KEY_DOWN == event.type)
suppress_next_keypress_event_ = true;
#endif
return true;
@@ -693,7 +679,7 @@
case WebInputEvent::CHAR: {
#if defined(OS_WIN)
// TODO(pinkerton): hook this up for non-win32
- if (event.key_code == VK_SPACE) {
+ if (event.windows_key_code == VK_SPACE) {
int key_code = ((event.modifiers & WebInputEvent::SHIFT_KEY) ?
VK_PRIOR : VK_NEXT);
return ScrollViewWithKeyboard(key_code);
@@ -702,9 +688,9 @@
break;
}
- case WebInputEvent::KEY_DOWN: {
+ case WebInputEvent::RAW_KEY_DOWN: {
if (event.modifiers == WebInputEvent::CTRL_KEY) {
- switch (event.key_code) {
+ switch (event.windows_key_code) {
case 'A':
GetFocusedFrame()->SelectAll();
return true;
@@ -729,7 +715,7 @@
}
#if defined(OS_WIN)
if (!event.system_key) {
- return ScrollViewWithKeyboard(event.key_code);
+ return ScrollViewWithKeyboard(event.windows_key_code);
}
#endif
break;
@@ -974,6 +960,7 @@
MouseUp(*static_cast<const WebMouseEvent*>(input_event));
break;
+ case WebInputEvent::RAW_KEY_DOWN:
case WebInputEvent::KEY_DOWN:
case WebInputEvent::KEY_UP:
handled = KeyEvent(*static_cast<const WebKeyboardEvent*>(input_event));
@@ -1232,15 +1219,14 @@
// Since we don't have a keyboard event, we'll create one.
WebKeyboardEvent keyboard_event;
- keyboard_event.type = WebInputEvent::KEY_DOWN;
+ keyboard_event.type = WebInputEvent::RAW_KEY_DOWN;
if (reverse)
keyboard_event.modifiers = WebInputEvent::SHIFT_KEY;
// VK_TAB which is only defined on Windows.
- keyboard_event.key_code = 0x09;
+ keyboard_event.windows_key_code = 0x09;
MakePlatformKeyboardEvent platform_event(keyboard_event);
// We have to set the key type explicitly to avoid an assert in the
// KeyboardEvent constructor.
- platform_event.SetKeyType(PlatformKeyboardEvent::RawKeyDown);
RefPtr<KeyboardEvent> webkit_event = KeyboardEvent::create(platform_event,
NULL);
page()->focusController()->setInitialFocus(
« no previous file with comments | « webkit/glue/webinputevent_win.cc ('k') | webkit/glue/webwidget_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698