| Index: chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| index aa7a0437d13f8278f9592306a2ee2a4dcb70ccf3..24d7e263524e05d10004fef71febcfff8094104e 100644
|
| --- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| @@ -323,6 +323,7 @@ AccessibilityManager::AccessibilityManager()
|
| content::NotificationService::AllSources());
|
|
|
| GetBrailleController()->AddObserver(this);
|
| + input_method::InputMethodManager::Get()->AddObserver(this);
|
|
|
| ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
|
| media::SoundsManager* manager = media::SoundsManager::Get();
|
| @@ -343,6 +344,7 @@ AccessibilityManager::~AccessibilityManager() {
|
| false,
|
| ash::A11Y_NOTIFICATION_NONE);
|
| NotifyAccessibilityStatusChanged(details);
|
| + input_method::InputMethodManager::Get()->RemoveObserver(this);
|
| }
|
|
|
| bool AccessibilityManager::ShouldShowAccessibilityMenu() {
|
| @@ -753,6 +755,17 @@ void AccessibilityManager::ReceiveBrailleDisplayState(
|
| OnDisplayStateChanged(*state);
|
| }
|
|
|
| +// Overridden from InputMethodManager::Observer.
|
| +void AccessibilityManager::InputMethodChanged(
|
| + input_method::InputMethodManager* manager,
|
| + bool show_message) {
|
| +#if defined(USE_ASH)
|
| + // Sticky keys is implemented only in ash.
|
| + ash::Shell::GetInstance()->sticky_keys_controller()->SetModifiersEnabled(
|
| + manager->IsMod3UsedByCurrentInputMethod(),
|
| + manager->IsAltGrUsedByCurrentInputMethod());
|
| +#endif
|
| +}
|
|
|
| void AccessibilityManager::SetProfile(Profile* profile) {
|
| pref_change_registrar_.reset();
|
|
|