Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / ui / views / focus / widget_focus_manager.cc
blob43a129c7a15e0fbf441e47287a791dc63e2e4564
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/views/focus/widget_focus_manager.h"
7 #include "base/memory/singleton.h"
9 namespace views {
11 // WidgetFocusManager ----------------------------------------------------------
13 // static
14 WidgetFocusManager* WidgetFocusManager::GetInstance() {
15 return Singleton<WidgetFocusManager>::get();
18 void WidgetFocusManager::AddFocusChangeListener(
19 WidgetFocusChangeListener* listener) {
20 focus_change_listeners_.AddObserver(listener);
23 void WidgetFocusManager::RemoveFocusChangeListener(
24 WidgetFocusChangeListener* listener) {
25 focus_change_listeners_.RemoveObserver(listener);
28 void WidgetFocusManager::OnNativeFocusChanged(gfx::NativeView focused_now) {
29 if (enabled_) {
30 FOR_EACH_OBSERVER(WidgetFocusChangeListener, focus_change_listeners_,
31 OnNativeFocusChanged(focused_now));
35 WidgetFocusManager::WidgetFocusManager() : enabled_(true) {}
37 WidgetFocusManager::~WidgetFocusManager() {}
39 // AutoNativeNotificationDisabler ----------------------------------------------
41 AutoNativeNotificationDisabler::AutoNativeNotificationDisabler() {
42 WidgetFocusManager::GetInstance()->DisableNotifications();
45 AutoNativeNotificationDisabler::~AutoNativeNotificationDisabler() {
46 WidgetFocusManager::GetInstance()->EnableNotifications();
49 } // namespace views