| Index: chrome/browser/ui/views/ash/key_rewriter.h
|
| diff --git a/chrome/browser/ui/views/ash/key_rewriter.h b/chrome/browser/ui/views/ash/key_rewriter.h
|
| index 354b2c9ed2a1ac02eaae2ada54750d3b072f48c9..83567d051958602eb62c2bb5e635abe6e0113908 100644
|
| --- a/chrome/browser/ui/views/ash/key_rewriter.h
|
| +++ b/chrome/browser/ui/views/ash/key_rewriter.h
|
| @@ -19,10 +19,20 @@
|
| #include "chrome/browser/chromeos/device_hierarchy_observer.h"
|
| #endif
|
|
|
| +class PrefService;
|
| +
|
| namespace aura {
|
| class RootWindow;
|
| }
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +namespace chromeos {
|
| +namespace input_method {
|
| +class XKeyboard;
|
| +}
|
| +}
|
| +#endif
|
| +
|
| class KeyRewriter : public ash::KeyRewriterDelegate,
|
| public aura::RootWindowObserver
|
| #if defined(OS_CHROMEOS)
|
| @@ -50,6 +60,14 @@ class KeyRewriter : public ash::KeyRewriterDelegate,
|
| void set_last_device_id_for_testing(int device_id) {
|
| last_device_id_ = device_id;
|
| }
|
| + void set_pref_service_for_testing(const PrefService* pref_service) {
|
| + pref_service_ = pref_service;
|
| + }
|
| +#if defined(OS_CHROMEOS)
|
| + void set_xkeyboard_for_testing(chromeos::input_method::XKeyboard* xkeyboard) {
|
| + xkeyboard_ = xkeyboard;
|
| + }
|
| +#endif
|
|
|
| // Gets DeviceType from the |device_name|.
|
| static DeviceType GetDeviceType(const std::string& device_name);
|
| @@ -71,6 +89,8 @@ class KeyRewriter : public ash::KeyRewriterDelegate,
|
|
|
| // Updates |*_xkeycode_| in response to a keyboard map change.
|
| void RefreshKeycodes();
|
| + // Converts an X key symbol like XK_Control_L to a key code.
|
| + unsigned char NativeKeySymToNativeKeycode(unsigned long keysym);
|
| #endif
|
|
|
| // Rewrites the |event| by applying all RewriteXXX functions as needed.
|
| @@ -81,6 +101,10 @@ class KeyRewriter : public ash::KeyRewriterDelegate,
|
| // |event| is rewritten.
|
| bool RewriteCommandToControl(aura::KeyEvent* event);
|
|
|
| + // Rewrites a modifier key press/release following the current user
|
| + // preferences.
|
| + bool RewriteModifiers(aura::KeyEvent* event);
|
| +
|
| // Rewrites a NumPad key press/release without Num Lock to a corresponding key
|
| // press/release with the lock. Returns true when |event| is rewritten.
|
| bool RewriteNumPadKeys(aura::KeyEvent* event);
|
| @@ -103,6 +127,13 @@ class KeyRewriter : public ash::KeyRewriterDelegate,
|
| // X keycodes corresponding to various keysyms.
|
| unsigned int control_l_xkeycode_;
|
| unsigned int control_r_xkeycode_;
|
| + unsigned int alt_l_xkeycode_;
|
| + unsigned int alt_r_xkeycode_;
|
| + unsigned int meta_l_xkeycode_;
|
| + unsigned int meta_r_xkeycode_;
|
| + unsigned int windows_l_xkeycode_;
|
| + unsigned int caps_lock_xkeycode_;
|
| + unsigned int void_symbol_xkeycode_;
|
| unsigned int kp_0_xkeycode_;
|
| unsigned int kp_1_xkeycode_;
|
| unsigned int kp_2_xkeycode_;
|
| @@ -114,8 +145,12 @@ class KeyRewriter : public ash::KeyRewriterDelegate,
|
| unsigned int kp_8_xkeycode_;
|
| unsigned int kp_9_xkeycode_;
|
| unsigned int kp_decimal_xkeycode_;
|
| +
|
| + chromeos::input_method::XKeyboard* xkeyboard_; // for testing.
|
| #endif
|
|
|
| + const PrefService* pref_service_; // for testing.
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(KeyRewriter);
|
| };
|
|
|
|
|