Chromium Code Reviews| Index: chromeos/ime/xkeyboard.cc |
| diff --git a/chromeos/ime/xkeyboard.cc b/chromeos/ime/xkeyboard.cc |
| index b2f55f14443e77a403ce47d27889b11c3a7fc658..da7660d7746b3c5743883057c7aa760368fc417a 100644 |
| --- a/chromeos/ime/xkeyboard.cc |
| +++ b/chromeos/ime/xkeyboard.cc |
| @@ -117,6 +117,10 @@ class XKeyboardImpl : public XKeyboard { |
| XKeyboardImpl(); |
| virtual ~XKeyboardImpl() {} |
| + // Adds/removes observer. |
| + virtual void AddObserver(Observer* observer) OVERRIDE; |
| + virtual void RemoveObserver(Observer* observer) OVERRIDE; |
| + |
| // Overridden from XKeyboard: |
| virtual bool SetCurrentKeyboardLayoutByName( |
| const std::string& layout_name) OVERRIDE; |
| @@ -169,6 +173,8 @@ class XKeyboardImpl : public XKeyboard { |
| base::WeakPtrFactory<XKeyboardImpl> weak_factory_; |
| + ObserverList<Observer> observers_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(XKeyboardImpl); |
| }; |
| @@ -193,6 +199,14 @@ XKeyboardImpl::XKeyboardImpl() |
| current_caps_lock_status_ = CapsLockIsEnabled(); |
| } |
| +void XKeyboardImpl::AddObserver(XKeyboard::Observer* observer) { |
| + observers_.AddObserver(observer); |
| +} |
| + |
| +void XKeyboardImpl::RemoveObserver(XKeyboard::Observer* observer) { |
| + observers_.RemoveObserver(observer); |
| +} |
| + |
| unsigned int XKeyboardImpl::GetNumLockMask() { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| static const unsigned int kBadMask = 0; |
| @@ -378,6 +392,9 @@ bool XKeyboardImpl::SetAutoRepeatRate(const AutoRepeatRate& rate) { |
| } |
| void XKeyboardImpl::SetCapsLockEnabled(bool enable_caps_lock) { |
| + if (current_caps_lock_status_ != enable_caps_lock) |
|
Daniel Erat
2014/04/09 23:39:40
add curly brackets since the statement is more tha
Mr4D (OOO till 08-26)
2014/04/09 23:44:47
Done.
|
| + FOR_EACH_OBSERVER(XKeyboard::Observer, observers_, |
| + OnCapsLockChanged(enable_caps_lock)); |
| SetLockedModifiers(enable_caps_lock); |
|
Daniel Erat
2014/04/09 23:39:40
you should probably update the state before you no
Mr4D (OOO till 08-26)
2014/04/09 23:44:47
Done.
|
| } |