Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: ui/views/focus/widget_focus_manager.cc

Issue 8879045: Don't close ExtensionPopups on child window focus (Win, non-Aura). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix bad typo. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/views/extensions/extension_popup.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/focus/widget_focus_manager.h" 5 #include "ui/views/focus/widget_focus_manager.h"
6 6
7 #include "base/memory/singleton.h" 7 #include "base/memory/singleton.h"
8 8
9 namespace views { 9 namespace views {
10 10
11 // WidgetFocusManager ---------------------------------------------------------- 11 // WidgetFocusManager ----------------------------------------------------------
12 12
13 // static 13 // static
14 WidgetFocusManager* WidgetFocusManager::GetInstance() { 14 WidgetFocusManager* WidgetFocusManager::GetInstance() {
15 return Singleton<WidgetFocusManager>::get(); 15 return Singleton<WidgetFocusManager>::get();
16 } 16 }
17 17
18 void WidgetFocusManager::AddFocusChangeListener( 18 void WidgetFocusManager::AddFocusChangeListener(
19 WidgetFocusChangeListener* listener) { 19 WidgetFocusChangeListener* listener) {
20 focus_change_listeners_.AddObserver(listener); 20 focus_change_listeners_.AddObserver(listener);
21 } 21 }
22 22
23 void WidgetFocusManager::RemoveFocusChangeListener( 23 void WidgetFocusManager::RemoveFocusChangeListener(
24 WidgetFocusChangeListener* listener) { 24 WidgetFocusChangeListener* listener) {
25 focus_change_listeners_.RemoveObserver(listener); 25 focus_change_listeners_.RemoveObserver(listener);
26 } 26 }
27 27
28 void WidgetFocusManager::OnWidgetFocusEvent(gfx::NativeView focused_before, 28 void WidgetFocusManager::OnWidgetFocusEvent(gfx::NativeView focused_before,
29 gfx::NativeView focused_now) { 29 gfx::NativeView focused_now) {
30 if (enabled_) { 30 if (enabled_ && focused_before != focused_now) {
31 FOR_EACH_OBSERVER(WidgetFocusChangeListener, focus_change_listeners_, 31 FOR_EACH_OBSERVER(WidgetFocusChangeListener, focus_change_listeners_,
32 OnNativeFocusChange(focused_before, focused_now)); 32 OnNativeFocusChange(focused_before, focused_now));
33 } 33 }
34 } 34 }
35 35
36 WidgetFocusManager::WidgetFocusManager() : enabled_(true) {} 36 WidgetFocusManager::WidgetFocusManager() : enabled_(true) {}
37 37
38 WidgetFocusManager::~WidgetFocusManager() {} 38 WidgetFocusManager::~WidgetFocusManager() {}
39 39
40 // AutoNativeNotificationDisabler ---------------------------------------------- 40 // AutoNativeNotificationDisabler ----------------------------------------------
41 41
42 AutoNativeNotificationDisabler::AutoNativeNotificationDisabler() { 42 AutoNativeNotificationDisabler::AutoNativeNotificationDisabler() {
43 WidgetFocusManager::GetInstance()->DisableNotifications(); 43 WidgetFocusManager::GetInstance()->DisableNotifications();
44 } 44 }
45 45
46 AutoNativeNotificationDisabler::~AutoNativeNotificationDisabler() { 46 AutoNativeNotificationDisabler::~AutoNativeNotificationDisabler() {
47 WidgetFocusManager::GetInstance()->EnableNotifications(); 47 WidgetFocusManager::GetInstance()->EnableNotifications();
48 } 48 }
49 49
50 } // namespace views 50 } // namespace views
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/extensions/extension_popup.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698