diff options
author | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-15 14:40:00 +0000 |
---|---|---|
committer | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-15 14:40:00 +0000 |
commit | f2aca6d93b9f039f2a794ef1e18c3b93991a20ef (patch) | |
tree | a53600fbad467066c6e47d68f4fac997e080cc2c | |
parent | 7591b2fe8001342dd5c3b06ccbb7a22a3ead4929 (diff) | |
download | chromium_src-f2aca6d93b9f039f2a794ef1e18c3b93991a20ef.zip chromium_src-f2aca6d93b9f039f2a794ef1e18c3b93991a20ef.tar.gz chromium_src-f2aca6d93b9f039f2a794ef1e18c3b93991a20ef.tar.bz2 |
Reduce the number of input_method::CapsLockIsEnabled() calls.
BUG=None
TEST=manual
Review URL: http://codereview.chromium.org/7388008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92692 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/system_key_event_listener.cc | 6 | ||||
-rw-r--r-- | chrome/browser/chromeos/system_key_event_listener.h | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/chrome/browser/chromeos/system_key_event_listener.cc b/chrome/browser/chromeos/system_key_event_listener.cc index 0c2d75e..4625697 100644 --- a/chrome/browser/chromeos/system_key_event_listener.cc +++ b/chrome/browser/chromeos/system_key_event_listener.cc @@ -36,6 +36,7 @@ SystemKeyEventListener* SystemKeyEventListener::GetInstance() { SystemKeyEventListener::SystemKeyEventListener() : stopped_(false), waiting_for_shift_for_caps_lock_(false), + caps_lock_is_on_(input_method::CapsLockIsEnabled()), xkb_event_base_(0), audio_handler_(AudioHandler::GetInstance()) { WmMessageListener::GetInstance()->AddObserver(this); @@ -209,7 +210,8 @@ bool SystemKeyEventListener::ProcessedXEvent(XEvent* xevent) { if (xevent->type == xkb_event_base_) { XkbEvent* xkey_event = reinterpret_cast<XkbEvent*>(xevent); if (xkey_event->any.xkb_type == XkbStateNotify) { - OnCapsLock((xkey_event->state.locked_mods) & LockMask); + caps_lock_is_on_ = (xkey_event->state.locked_mods) & LockMask; + OnCapsLock(caps_lock_is_on_); return true; } } else if (xevent->type == KeyPress) { @@ -223,7 +225,7 @@ bool SystemKeyEventListener::ProcessedXEvent(XEvent* xevent) { if (waiting_for_shift_for_caps_lock_ && other_shift_is_held && !other_mods_are_held) { - input_method::SetCapsLockEnabled(!input_method::CapsLockIsEnabled()); + input_method::SetCapsLockEnabled(!caps_lock_is_on_); } // Only toggle on the next Shift press if we're seeing the first Shift diff --git a/chrome/browser/chromeos/system_key_event_listener.h b/chrome/browser/chromeos/system_key_event_listener.h index 2e0ce44..6c06999 100644 --- a/chrome/browser/chromeos/system_key_event_listener.h +++ b/chrome/browser/chromeos/system_key_event_listener.h @@ -94,6 +94,7 @@ class SystemKeyEventListener : public WmMessageListener::Observer, // last key press event was regarding the other Shift key)? bool waiting_for_shift_for_caps_lock_; + bool caps_lock_is_on_; ObserverList<CapsLockObserver> caps_lock_observers_; // Base X ID for events from the XKB extension. |