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

Unified Diff: chrome/browser/ui/views/ash/key_rewriter.h

Issue 10383301: Move modifier remapping code from X to Ash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: style fix Created 8 years, 7 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
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);
};

Powered by Google App Engine
This is Rietveld 408576698