Chromium Code Reviews| Index: chrome/browser/ui/ash/event_rewriter.cc |
| diff --git a/chrome/browser/ui/ash/event_rewriter.cc b/chrome/browser/ui/ash/event_rewriter.cc |
| index 3183fff72cb7b7d1548165746c1ff497b94bcd44..fe97727bc497a74e7a2f6dc769218b3f8784bd93 100644 |
| --- a/chrome/browser/ui/ash/event_rewriter.cc |
| +++ b/chrome/browser/ui/ash/event_rewriter.cc |
| @@ -294,6 +294,7 @@ void EventRewriter::RefreshKeycodes() { |
| end_xkeycode_ = XKeysymToKeycode(display, XK_End); |
| prior_xkeycode_ = XKeysymToKeycode(display, XK_Prior); |
| next_xkeycode_ = XKeysymToKeycode(display, XK_Next); |
| + insert_xkeycode_ = XKeysymToKeycode(display, XK_Insert); |
| kp_0_xkeycode_ = XKeysymToKeycode(display, XK_KP_0); |
| kp_1_xkeycode_ = XKeysymToKeycode(display, XK_KP_1); |
| kp_2_xkeycode_ = XKeysymToKeycode(display, XK_KP_2); |
| @@ -361,6 +362,8 @@ KeyCode EventRewriter::NativeKeySymToNativeKeycode(KeySym keysym) { |
| return prior_xkeycode_; |
| case XK_Next: |
| return next_xkeycode_; |
| + case XK_Insert: |
| + return insert_xkeycode_; |
| case XK_KP_0: |
| return kp_0_xkeycode_; |
| case XK_KP_1: |
| @@ -402,7 +405,7 @@ ash::EventRewriterDelegate::Action EventRewriter::Rewrite(ui::KeyEvent* event) { |
| #endif |
| RewriteModifiers(event); |
| RewriteNumPadKeys(event); |
| - RewriteBackspaceAndArrowKeys(event); |
| + RewriteBackspaceBackslashAndArrowKeys(event); |
| RewriteFunctionKeys(event); |
| return ash::EventRewriterDelegate::ACTION_REWRITE_EVENT; |
| } |
| @@ -673,7 +676,7 @@ bool EventRewriter::RewriteNumPadKeys(ui::KeyEvent* event) { |
| return rewritten; |
| } |
| -bool EventRewriter::RewriteBackspaceAndArrowKeys(ui::KeyEvent* event) { |
| +bool EventRewriter::RewriteBackspaceBackslashAndArrowKeys(ui::KeyEvent* event) { |
| bool rewritten = false; |
| #if defined(OS_CHROMEOS) |
| const PrefService* pref_service = |
| @@ -752,6 +755,12 @@ bool EventRewriter::RewriteBackspaceAndArrowKeys(ui::KeyEvent* event) { |
| OverwriteEvent(event, next_xkeycode_, xkey->state & ~Mod4Mask, |
| ui::VKEY_NEXT, event->flags()); |
| rewritten = true; |
| + } else if (search_as_function_key && |
|
Wez
2012/11/26 21:03:19
nit: This function would be easier to read if it h
|
| + keysym == XK_backslash && (xkey->state & Mod4Mask)) { |
|
Yusuke Sato
2012/11/26 07:54:44
\ might be a bit inconvenient for non-US versions
danakj
2012/11/26 17:47:28
Sure that sounds fine. :)
Wez
2012/11/26 21:03:19
Agreed; "\" not only changes location between US &
Yusuke Sato
2012/11/26 21:08:28
Unfortunately - and = are already used for F11 and
|
| + // With Search as Function key: Remap Search+backslash to Insert. |
| + OverwriteEvent(event, insert_xkeycode_, xkey->state & ~Mod4Mask, |
| + ui::VKEY_INSERT, event->flags()); |
| + rewritten = true; |
| } |
| #else |
| // TODO(yusukes): Support Ash on other platforms if needed. |