summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 14:40:00 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 14:40:00 +0000
commitf2aca6d93b9f039f2a794ef1e18c3b93991a20ef (patch)
treea53600fbad467066c6e47d68f4fac997e080cc2c
parent7591b2fe8001342dd5c3b06ccbb7a22a3ead4929 (diff)
downloadchromium_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.cc6
-rw-r--r--chrome/browser/chromeos/system_key_event_listener.h1
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.