diff options
author | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-03 05:49:35 +0000 |
---|---|---|
committer | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-03 05:49:35 +0000 |
commit | 55d36fd16c97d7053d5f8a9917465ae216744199 (patch) | |
tree | 3cee1bd6e3746224a6cda0fad93a09b3e20e4b75 /chrome/browser/browser_shutdown.cc | |
parent | 6f113afc002159d93b32e72434dfeab9cdf9ec71 (diff) | |
download | chromium_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.cc | 8 |
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 |