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

Unified Diff: chrome/browser/chromeos/event_rewriter.h

Issue 165463002: event-rewrite: Clean up how events are rewritten. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 10 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/chromeos/event_rewriter.h
diff --git a/chrome/browser/ui/ash/event_rewriter.h b/chrome/browser/chromeos/event_rewriter.h
similarity index 70%
rename from chrome/browser/ui/ash/event_rewriter.h
rename to chrome/browser/chromeos/event_rewriter.h
index f08507582a83135d4e6027e22b6762f449777bf4..396911a73ecf5e21f7cc3a54d22966932841aed2 100644
--- a/chrome/browser/ui/ash/event_rewriter.h
+++ b/chrome/browser/chromeos/event_rewriter.h
@@ -1,49 +1,39 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_UI_ASH_EVENT_REWRITER_H_
-#define CHROME_BROWSER_UI_ASH_EVENT_REWRITER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_EVENT_REWRITER_H_
+#define CHROME_BROWSER_CHROMEOS_EVENT_REWRITER_H_
#include <map>
#include <set>
#include <string>
-#include "ash/event_rewriter_delegate.h"
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/containers/hash_tables.h"
#include "base/memory/scoped_ptr.h"
+#include "base/message_loop/message_pump_observer.h"
+#include "chrome/browser/chromeos/device_hierarchy_observer.h"
#include "ui/aura/root_window_observer.h"
#include "ui/events/keycodes/keyboard_codes.h"
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/device_hierarchy_observer.h"
-#endif
-
class PrefService;
+typedef union _XEvent XEvent;
namespace aura {
class RootWindow;
}
-#if defined(OS_CHROMEOS)
namespace chromeos {
-
class KeyboardDrivenEventRewriter;
-
namespace input_method {
class XKeyboard;
}
-}
-#endif
-
-class EventRewriter : public ash::EventRewriterDelegate,
- public aura::RootWindowObserver
-#if defined(OS_CHROMEOS)
- , public chromeos::DeviceHierarchyObserver
-#endif
-{
+
+class EventRewriter : public aura::RootWindowObserver,
+ public DeviceHierarchyObserver,
+ public base::MessagePumpObserver {
public:
enum DeviceType {
kDeviceUnknown = 0,
@@ -57,7 +47,7 @@ class EventRewriter : public ash::EventRewriterDelegate,
DeviceType DeviceAddedForTesting(int device_id,
const std::string& device_name);
// Calls Rewrite.
- void RewriteForTesting(ui::KeyEvent* event);
+ void RewriteForTesting(XEvent* event);
const std::map<int, DeviceType>& device_id_to_type_for_testing() const {
return device_id_to_type_;
@@ -68,11 +58,9 @@ class EventRewriter : public ash::EventRewriterDelegate,
void set_pref_service_for_testing(const PrefService* pref_service) {
pref_service_for_testing_ = pref_service;
}
-#if defined(OS_CHROMEOS)
- void set_xkeyboard_for_testing(chromeos::input_method::XKeyboard* xkeyboard) {
+ void set_xkeyboard_for_testing(input_method::XKeyboard* xkeyboard) {
xkeyboard_for_testing_ = xkeyboard;
}
-#endif
// Gets DeviceType from the |device_name|.
static DeviceType GetDeviceType(const std::string& device_name);
@@ -81,17 +69,15 @@ class EventRewriter : public ash::EventRewriterDelegate,
friend class EventRewriterAshTest;
friend class EventRewriterTest;
- // ash::EventRewriterDelegate overrides:
- virtual ash::EventRewriterDelegate::Action RewriteOrFilterKeyEvent(
- ui::KeyEvent* event) OVERRIDE;
- virtual ash::EventRewriterDelegate::Action RewriteOrFilterLocatedEvent(
- ui::LocatedEvent* event) OVERRIDE;
-
// aura::RootWindowObserver overrides:
virtual void OnKeyboardMappingChanged(const aura::RootWindow* root) OVERRIDE;
-#if defined(OS_CHROMEOS)
- // chromeos::DeviceHierarchyObserver overrides:
+ // base::MessagePumpObserver overrides:
+ virtual base::EventStatus WillProcessEvent(
+ const base::NativeEvent& event) OVERRIDE;
+ virtual void DidProcessEvent(const base::NativeEvent& event) OVERRIDE;
+
+ // DeviceHierarchyObserver overrides:
virtual void DeviceHierarchyChanged() OVERRIDE {}
virtual void DeviceAdded(int device_id) OVERRIDE;
virtual void DeviceRemoved(int device_id) OVERRIDE;
@@ -109,11 +95,8 @@ class EventRewriter : public ash::EventRewriterDelegate,
struct KeyboardRemapping {
KeySym input_keysym;
- unsigned int input_mods;
unsigned int input_native_mods;
KeySym output_keysym;
- ui::KeyboardCode output_keycode;
- unsigned int output_mods;
unsigned int output_native_mods;
};
@@ -121,7 +104,7 @@ class EventRewriter : public ash::EventRewriterDelegate,
// keys instead of having them rewritten into back, forward, brightness,
// volume, etc. or if the user has specified that they desire top-row keys to
// be treated as function keys globally.
- bool TopRowKeysAreFunctionKeys(ui::KeyEvent* event) const;
+ bool TopRowKeysAreFunctionKeys(XEvent* event) const;
// Given a set of KeyboardRemapping structs, it finds a matching struct
// if possible, and updates the remapped event values. Returns true if a
@@ -131,11 +114,8 @@ class EventRewriter : public ash::EventRewriterDelegate,
size_t num_remappings,
KeySym keysym,
unsigned int native_mods,
- unsigned int mods,
KeySym* remapped_native_keysym,
- unsigned int* remapped_native_mods,
- ui::KeyboardCode* remapped_keycode,
- unsigned int* remapped_mods);
+ unsigned int* remapped_native_mods);
// Given a set of KeyboardRemapping structs, it finds a matching struct
// if possible, and updates the remapped event values. This function converts
@@ -147,31 +127,27 @@ class EventRewriter : public ash::EventRewriterDelegate,
size_t num_remappings,
KeyCode keycode,
unsigned int native_mods,
- unsigned int mods,
KeySym* remapped_native_keysym,
- unsigned int* remapped_native_mods,
- ui::KeyboardCode* remapped_keycode,
- unsigned int* remapped_mods);
-#endif
+ unsigned int* remapped_native_mods);
// Returns the PrefService that should be used.
const PrefService* GetPrefService() const;
// Rewrites the |event| by applying all RewriteXXX functions as needed.
- void Rewrite(ui::KeyEvent* event);
+ void Rewrite(XEvent* event);
// Rewrites a modifier key press/release following the current user
// preferences.
- bool RewriteModifiers(ui::KeyEvent* event);
+ bool RewriteModifiers(XEvent* event);
// Rewrites Fn key press/release to Control. In some cases, Fn key is not
// intercepted by the EC, but generates a key event like "XK_F15 + Mod3Mask"
// as shown in crosbug.com/p/14339.
- bool RewriteFnKey(ui::KeyEvent* event);
+ bool RewriteFnKey(XEvent* 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(ui::KeyEvent* event);
+ bool RewriteNumPadKeys(XEvent* event);
// Rewrites Backspace and Arrow keys following the Chrome OS keyboard spec.
// * Alt+Backspace -> Delete
@@ -187,22 +163,20 @@ class EventRewriter : public ash::EventRewriterDelegate,
// * Search+Right -> End
// * Search+. -> Insert
// Returns true when the |event| is rewritten.
- bool RewriteExtendedKeys(ui::KeyEvent* event);
+ bool RewriteExtendedKeys(XEvent* event);
// When the Search key acts as a function key, it remaps Search+1
// through Search+= to F1 through F12. Returns true when the |event| is
// rewritten.
- bool RewriteFunctionKeys(ui::KeyEvent* event);
+ bool RewriteFunctionKeys(XEvent* event);
// Rewrites the located |event|.
- void RewriteLocatedEvent(ui::LocatedEvent* event);
+ void RewriteLocatedEvent(XEvent* event);
// Overwrites |event| with the keycodes and flags.
- void OverwriteEvent(ui::KeyEvent* event,
+ void OverwriteEvent(XEvent* event,
unsigned int new_native_keycode,
- unsigned int new_native_state,
- ui::KeyboardCode new_keycode,
- int new_flags);
+ unsigned int new_native_state);
// Checks the type of the |device_name|, and inserts a new entry to
// |device_id_to_type_|.
@@ -211,32 +185,30 @@ class EventRewriter : public ash::EventRewriterDelegate,
// Returns true if |last_device_id_| is Apple's.
bool IsAppleKeyboard() const;
- // Remaps |original_flags| to |remapped_flags| and |original_native_modifiers|
- // to |remapped_native_modifiers| following the current user prefs.
- void GetRemappedModifierMasks(int original_flags,
- unsigned int original_native_modifiers,
- int* remapped_flags,
+ // Remaps |original_native_modifiers| to |remapped_native_modifiers| following
+ // the current user prefs.
+ void GetRemappedModifierMasks(unsigned int original_native_modifiers,
unsigned int* remapped_native_modifiers) const;
std::map<int, DeviceType> device_id_to_type_;
int last_device_id_;
-#if defined(OS_CHROMEOS)
// A mapping from X11 KeySym keys to KeyCode values.
base::hash_map<unsigned long, unsigned long> keysym_to_keycode_map_;
// A set of device IDs whose press event has been rewritten.
std::set<int> pressed_device_ids_;
- chromeos::input_method::XKeyboard* xkeyboard_for_testing_;
+ input_method::XKeyboard* xkeyboard_for_testing_;
- scoped_ptr<chromeos::KeyboardDrivenEventRewriter>
+ scoped_ptr<KeyboardDrivenEventRewriter>
keyboard_driven_event_rewriter_;
-#endif
const PrefService* pref_service_for_testing_;
DISALLOW_COPY_AND_ASSIGN(EventRewriter);
};
-#endif // CHROME_BROWSER_UI_ASH_EVENT_REWRITER_H_
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_CHROMEOS_EVENT_REWRITER_H_

Powered by Google App Engine
This is Rietveld 408576698