123456789101112131415161718192021222324252627282930313233 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "ash/accessibility/scoped_a11y_override_window_setter.h"
- #include "ash/accessibility/accessibility_controller_impl.h"
- #include "ash/shell.h"
- namespace ash {
- ScopedA11yOverrideWindowSetter::~ScopedA11yOverrideWindowSetter() {
- // `ScopedA11yOverrideWindowSetter` can be destructed while Shell is being
- // destroyed and therefore null.
- if (Shell::HasInstance())
- MaybeUpdateA11yOverrideWindow(nullptr);
- }
- void ScopedA11yOverrideWindowSetter::OnWindowDestroying(aura::Window* window) {
- MaybeUpdateA11yOverrideWindow(nullptr);
- }
- void ScopedA11yOverrideWindowSetter::MaybeUpdateA11yOverrideWindow(
- aura::Window* a11y_override_window) {
- DCHECK(Shell::HasInstance());
- if (current_a11y_override_window_ != a11y_override_window) {
- Shell::Get()->accessibility_controller()->SetA11yOverrideWindow(
- a11y_override_window);
- current_a11y_override_window_ = a11y_override_window;
- }
- }
- } // namespace ash
|