| 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 f73afbe47a09f5b3eb9f0681be01570947a14b7f..a73fb8bfa7932000dbd5e4f4194624dff1c38ab1 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() {
|
| @@ -762,6 +764,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();
|
|
|