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"
11 // WidgetFocusManager ----------------------------------------------------------
14 WidgetFocusManager
* WidgetFocusManager::GetInstance() {
15 return base::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
) {
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();