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. |