Index: chrome/browser/chromeos/events/event_rewriter.cc |
diff --git a/chrome/browser/chromeos/events/event_rewriter.cc b/chrome/browser/chromeos/events/event_rewriter.cc |
index b6899e94a29702c39b241ee1c24c969bc0d59bae..bebcf47fda94e5047ffa8c5da7abe5072827edd7 100644 |
--- a/chrome/browser/chromeos/events/event_rewriter.cc |
+++ b/chrome/browser/chromeos/events/event_rewriter.cc |
@@ -14,7 +14,6 @@ |
#include <vector> |
-#include "ash/shell.h" |
#include "ash/wm/window_state.h" |
#include "ash/wm/window_util.h" |
#include "base/command_line.h" |
@@ -31,7 +30,6 @@ |
#include "chromeos/chromeos_switches.h" |
#include "chromeos/ime/input_method_manager.h" |
#include "chromeos/ime/xkeyboard.h" |
-#include "ui/aura/window_event_dispatcher.h" |
#include "ui/base/x/x11_util.h" |
#include "ui/events/event.h" |
#include "ui/events/event_utils.h" |
@@ -141,10 +139,6 @@ EventRewriter::EventRewriter() |
xkeyboard_for_testing_(NULL), |
keyboard_driven_event_rewriter_(new KeyboardDrivenEventRewriter), |
pref_service_for_testing_(NULL) { |
- // The ash shell isn't instantiated for our unit tests. |
- if (ash::Shell::HasInstance()) { |
- ash::Shell::GetPrimaryRootWindow()->GetHost()->AddObserver(this); |
- } |
base::MessageLoopForUI::current()->AddObserver(this); |
if (base::SysInfo::IsRunningOnChromeOS()) { |
XInputHierarchyChangedEventListener::GetInstance()->AddObserver(this); |
@@ -154,9 +148,6 @@ EventRewriter::EventRewriter() |
EventRewriter::~EventRewriter() { |
base::MessageLoopForUI::current()->RemoveObserver(this); |
- if (ash::Shell::HasInstance()) { |
- ash::Shell::GetPrimaryRootWindow()->GetHost()->RemoveObserver(this); |
- } |
if (base::SysInfo::IsRunningOnChromeOS()) { |
XInputHierarchyChangedEventListener::GetInstance()->RemoveObserver(this); |
} |
@@ -194,17 +185,19 @@ void EventRewriter::RewriteForTesting(XEvent* event) { |
Rewrite(event); |
} |
-void EventRewriter::OnKeyboardMappingChanged(const aura::WindowTreeHost* host) { |
- RefreshKeycodes(); |
-} |
- |
base::EventStatus EventRewriter::WillProcessEvent( |
const base::NativeEvent& event) { |
XEvent* xevent = event; |
- if (xevent->type == KeyPress || xevent->type == KeyRelease) |
+ if (xevent->type == KeyPress || xevent->type == KeyRelease) { |
Rewrite(xevent); |
- else if (xevent->type == GenericEvent) |
+ } else if (xevent->type == GenericEvent) { |
RewriteLocatedEvent(xevent); |
+ } else if (xevent->type == MappingNotify) { |
+ if (xevent->xmapping.request == MappingModifier || |
+ xevent->xmapping.request == MappingKeyboard) { |
+ RefreshKeycodes(); |
+ } |
+ } |
return base::EVENT_CONTINUE; |
} |