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

Unified Diff: chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc

Issue 240173007: Convert KeyboardDrivenEventRewriter to a ui::EventRewriter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments on Patch Set 2 Created 6 years, 8 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/events/keyboard_driven_event_rewriter.cc
diff --git a/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc b/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc
index 1934477f6e223f722749103b962e55d77c597190..4176d945286d00a0ddec6e7ebe3140e1fb0b9d20 100644
--- a/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc
+++ b/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc
@@ -4,10 +4,9 @@
#include "chrome/browser/chromeos/events/keyboard_driven_event_rewriter.h"
-#include <X11/Xlib.h>
-
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/system/input_device_settings.h"
+#include "ui/events/event.h"
#include "ui/events/event_utils.h"
namespace chromeos {
@@ -34,23 +33,40 @@ KeyboardDrivenEventRewriter::KeyboardDrivenEventRewriter() {}
KeyboardDrivenEventRewriter::~KeyboardDrivenEventRewriter() {}
-bool KeyboardDrivenEventRewriter::RewriteIfKeyboardDrivenOnLoginScreen(
- XEvent* event) {
+ui::EventRewriteStatus KeyboardDrivenEventRewriter::RewriteForTesting(
+ const ui::Event& event,
+ scoped_ptr<ui::Event>* rewritten_event) {
+ return Rewrite(event, rewritten_event);
+}
+
+ui::EventRewriteStatus KeyboardDrivenEventRewriter::RewriteEvent(
+ const ui::Event& event,
+ scoped_ptr<ui::Event>* rewritten_event) {
if (!ShouldStripModifiersForArrowKeysAndEnter())
- return false;
+ return ui::EVENT_REWRITE_CONTINUE;
- return RewriteEvent(event);
+ return Rewrite(event, rewritten_event);
}
-bool KeyboardDrivenEventRewriter::RewriteForTesting(XEvent* event) {
- return RewriteEvent(event);
+ui::EventRewriteStatus KeyboardDrivenEventRewriter::NextDispatchEvent(
+ const ui::Event& last_event,
+ scoped_ptr<ui::Event>* new_event) {
+ NOTREACHED();
+ return ui::EVENT_REWRITE_CONTINUE;
}
-bool KeyboardDrivenEventRewriter::RewriteEvent(XEvent* event) {
- int flags = ui::EventFlagsFromNative(event);
+ui::EventRewriteStatus KeyboardDrivenEventRewriter::Rewrite(
+ const ui::Event& event,
+ scoped_ptr<ui::Event>* rewritten_event) {
+ int flags = event.flags();
if ((flags & kModifierMask) != kModifierMask)
- return false;
- ui::KeyboardCode key_code = ui::KeyboardCodeFromNative(event);
+ return ui::EVENT_REWRITE_CONTINUE;
+
+ DCHECK(event.type() == ui::ET_KEY_PRESSED ||
+ event.type() == ui::ET_KEY_RELEASED)
+ << "Unexpected event type " << event.type();
sadrul 2014/04/24 22:17:09 You can also use event.name()
+ const ui::KeyEvent& key_event = static_cast<const ui::KeyEvent&>(event);
+ ui::KeyboardCode key_code = key_event.key_code();
if (key_code != ui::VKEY_LEFT &&
key_code != ui::VKEY_RIGHT &&
@@ -58,12 +74,13 @@ bool KeyboardDrivenEventRewriter::RewriteEvent(XEvent* event) {
key_code != ui::VKEY_DOWN &&
key_code != ui::VKEY_RETURN &&
key_code != ui::VKEY_F6) {
- return false;
+ return ui::EVENT_REWRITE_CONTINUE;
}
- XKeyEvent* xkey = &(event->xkey);
- xkey->state &= ~(ControlMask | Mod1Mask | ShiftMask);
- return true;
+ rewritten_event->reset(new ui::KeyEvent(key_event));
+ (*rewritten_event)->set_flags(
+ flags & ~(ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN));
+ return ui::EVENT_REWRITE_REWRITTEN;
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698