Chromium Code Reviews| Index: chrome/browser/chromeos/events/event_rewriter.h |
| diff --git a/chrome/browser/chromeos/events/event_rewriter.h b/chrome/browser/chromeos/events/event_rewriter.h |
| index ac45cf6c9157eca5c4e56612270384ece7beb972..34d913be8a5c83e1d4586473aaf630edb2fc0960 100644 |
| --- a/chrome/browser/chromeos/events/event_rewriter.h |
| +++ b/chrome/browser/chromeos/events/event_rewriter.h |
| @@ -15,12 +15,6 @@ |
| #include "ui/events/event.h" |
| #include "ui/events/event_rewriter.h" |
| -#if defined(USE_X11) |
| -#include "chrome/browser/chromeos/device_hierarchy_observer.h" |
| -#include "ui/events/platform/platform_event_observer.h" |
| -typedef union _XEvent XEvent; |
| -#endif |
| - |
| class PrefService; |
| namespace ash { |
| @@ -42,13 +36,7 @@ class ImeKeyboard; |
| // - handles various key combinations like Search+Backspace -> Delete |
| // and Search+number to Fnumber; |
| // - handles key/pointer combinations like Alt+Button1 -> Button3. |
| -class EventRewriter |
| - : |
| -#if defined(USE_X11) |
| - public DeviceHierarchyObserver, |
| - public ui::PlatformEventObserver, |
| -#endif |
| - public ui::EventRewriter { |
| +class EventRewriter : public ui::EventRewriter { |
| public: |
| enum DeviceType { |
| kDeviceUnknown = 0, |
| @@ -61,21 +49,20 @@ class EventRewriter |
| explicit EventRewriter(ash::StickyKeysController* sticky_keys_controller); |
| virtual ~EventRewriter(); |
| - // Calls DeviceAddedInternal. |
| - DeviceType DeviceAddedForTesting(int device_id, |
| - const std::string& device_name); |
| + // Calls KeyboardDeviceAddedInternal. |
| + DeviceType KeyboardDeviceAddedForTesting(int device_id, |
| + const std::string& device_name); |
| - // Calls RewriteLocatedEvent(). |
| - void RewriteLocatedEventForTesting(const ui::Event& event, int* flags); |
| + // Calls RewriteMouseEvent(). |
| + void RewriteMouseButtonEventForTesting( |
| + const ui::MouseEvent& event, |
| + scoped_ptr<ui::Event>* rewritten_event); |
| -#if defined(USE_X11) |
| const std::map<int, DeviceType>& device_id_to_type_for_testing() const { |
| return device_id_to_type_; |
| } |
| -#endif |
| - |
| - void set_last_device_id_for_testing(int device_id) { |
| - last_device_id_ = device_id; |
| + void set_last_keyboard_device_id_for_testing(int device_id) { |
| + last_keyboard_device_id_ = device_id; |
| } |
| void set_pref_service_for_testing(const PrefService* pref_service) { |
| pref_service_for_testing_ = pref_service; |
| @@ -93,16 +80,11 @@ class EventRewriter |
| const ui::Event& last_event, |
| scoped_ptr<ui::Event>* new_event) OVERRIDE; |
| -#if defined(USE_X11) |
| - // ui::PlatformEventObserver: |
| - virtual void WillProcessEvent(const ui::PlatformEvent& event) OVERRIDE; |
| - virtual void DidProcessEvent(const ui::PlatformEvent& event) OVERRIDE; |
| - |
| - // DeviceHierarchyObserver: |
| - virtual void DeviceHierarchyChanged() OVERRIDE; |
| - virtual void DeviceAdded(int device_id) OVERRIDE; |
| - virtual void DeviceRemoved(int device_id) OVERRIDE; |
| -#endif |
| + // Generate a new key event from an event and replacement key code and flags. |
| + static void RewrittenKeyEvent(const ui::KeyEvent& key_event, |
|
Daniel Erat
2014/06/25 17:13:24
did you mean to name this RewriteKeyEvent()? an ea
kpschoedel
2014/06/25 19:59:48
This is the function that constructs a new key eve
Daniel Erat
2014/06/25 20:06:13
great, thanks! (i mostly just wanted there to be a
|
| + ui::KeyboardCode key_code, |
| + int flags, |
| + scoped_ptr<ui::Event>* rewritten_event); |
| private: |
| // Things that keyboard-related rewriter phases can change about an Event. |
| @@ -119,18 +101,20 @@ class EventRewriter |
| int output_flags; |
| }; |
| -#if defined(USE_X11) |
| void DeviceKeyPressedOrReleased(int device_id); |
| -#endif |
| // Returns the PrefService that should be used. |
| const PrefService* GetPrefService() const; |
| + // Adds a device to |device_id_to_type_|. |
| + void KeyboardDeviceAdded(int device_id); |
| + |
| // Checks the type of the |device_name|, and inserts a new entry to |
| // |device_id_to_type_|. |
| - DeviceType DeviceAddedInternal(int device_id, const std::string& device_name); |
| + DeviceType KeyboardDeviceAddedInternal(int device_id, |
| + const std::string& device_name); |
| - // Returns true if |last_device_id_| is Apple's. |
| + // Returns true if |last_keyboard_device_id_| is Apple's. |
| bool IsAppleKeyboard() const; |
| // Returns true if the target for |event| would prefer to receive raw function |
| @@ -178,12 +162,16 @@ class EventRewriter |
| void RewriteExtendedKeys(const ui::KeyEvent& event, MutableKeyState* state); |
| void RewriteFunctionKeys(const ui::KeyEvent& event, MutableKeyState* state); |
| void RewriteLocatedEvent(const ui::Event& event, int* flags); |
| + int RewriteModifierClick(const ui::MouseEvent& event, int* flags); |
| // A set of device IDs whose press event has been rewritten. |
| + // This is to ensure that press and release events are rewritten consistently. |
| std::set<int> pressed_device_ids_; |
| std::map<int, DeviceType> device_id_to_type_; |
|
Daniel Erat
2014/06/25 17:13:24
nit: add a blank line below this one
kpschoedel
2014/06/25 19:59:48
Done.
|
| - int last_device_id_; |
| + // The |source_device_id()| of the most recent keyboard event, |
| + // used to interpret modifiers on pointer events. |
| + int last_keyboard_device_id_; |
| chromeos::input_method::ImeKeyboard* ime_keyboard_for_testing_; |
| const PrefService* pref_service_for_testing_; |