summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_shutdown.cc
diff options
context:
space:
mode:
authoryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-03 05:49:35 +0000
committeryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-03 05:49:35 +0000
commit55d36fd16c97d7053d5f8a9917465ae216744199 (patch)
tree3cee1bd6e3746224a6cda0fad93a09b3e20e4b75 /chrome/browser/browser_shutdown.cc
parent6f113afc002159d93b32e72434dfeab9cdf9ec71 (diff)
downloadchromium_src-55d36fd16c97d7053d5f8a9917465ae216744199.zip
chromium_src-55d36fd16c97d7053d5f8a9917465ae216744199.tar.gz
chromium_src-55d36fd16c97d7053d5f8a9917465ae216744199.tar.bz2
Listen to XI_HierarchyChanged events and call setxkbmap when needed.
BUG=chromium-os:15851 BUG=chromium-os:15516 BUG=84694 TEST=manually done: Log in, change the layout from US Qwerty (US) to US Extended (EXTD), focus Omnibox, press AltGr+a, confirm á is shown, plug a USB keyboard, press AltGr+a, confirm the character again, press ctrl+alt+f2 to show VT2, press ctrl+alt+f1 to go back to X, press AltGr+a, confirm the char again, close lid, open lid, press AltGr+a, confirm the char again. TEST=On login screen, change the keyboard layout to EXTD, add "sleep 30" to /etc/init/udev-*.conf files, reboot, on login screen, wait for ~30 seconds, press AltGr+a, confirm á is shown. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=87585 Review URL: http://codereview.chromium.org/6975057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87756 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_shutdown.cc')
-rw-r--r--chrome/browser/browser_shutdown.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/chrome/browser/browser_shutdown.cc b/chrome/browser/browser_shutdown.cc
index 0ab6675..3bcf9191 100644
--- a/chrome/browser/browser_shutdown.cc
+++ b/chrome/browser/browser_shutdown.cc
@@ -54,6 +54,7 @@
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/cros/login_library.h"
#include "chrome/browser/chromeos/system_key_event_listener.h"
+#include "chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.h"
#endif
using base::Time;
@@ -131,6 +132,13 @@ void Shutdown() {
// The system key event listener needs to be shut down earlier than when
// Singletons are finally destroyed in AtExitManager.
chromeos::SystemKeyEventListener::GetInstance()->Stop();
+
+ // TODO(yusukes): Remove the #if once the ARM bot (crbug.com/84694) is fixed.
+#if defined(HAVE_XINPUT2)
+ // The XInput2 event listener needs to be shut down earlier than when
+ // Singletons are finally destroyed in AtExitManager.
+ chromeos::XInputHierarchyChangedEventListener::GetInstance()->Stop();
+#endif
#endif
// WARNING: During logoff/shutdown (WM_ENDSESSION) we may not have enough