OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/ui/panels/display_settings_provider.h" | 5 #include "chrome/browser/ui/panels/display_settings_provider.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "chrome/browser/fullscreen.h" | 9 #include "chrome/browser/fullscreen.h" |
10 #include "ui/gfx/screen.h" | 10 #include "ui/gfx/screen.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 } | 36 } |
37 | 37 |
38 void DisplaySettingsProvider::RemoveDesktopBarObserver( | 38 void DisplaySettingsProvider::RemoveDesktopBarObserver( |
39 DesktopBarObserver* observer) { | 39 DesktopBarObserver* observer) { |
40 desktop_bar_observers_.RemoveObserver(observer); | 40 desktop_bar_observers_.RemoveObserver(observer); |
41 } | 41 } |
42 | 42 |
43 void DisplaySettingsProvider::AddFullScreenObserver( | 43 void DisplaySettingsProvider::AddFullScreenObserver( |
44 FullScreenObserver* observer) { | 44 FullScreenObserver* observer) { |
45 is_full_screen_ = IsFullScreen(); | 45 is_full_screen_ = IsFullScreen(); |
| 46 bool already_started = full_screen_observers_.might_have_observers(); |
46 full_screen_observers_.AddObserver(observer); | 47 full_screen_observers_.AddObserver(observer); |
47 | 48 |
48 if (full_screen_observers_.size() == 1 && NeedsPeriodicFullScreenCheck()) { | 49 if (!already_started && NeedsPeriodicFullScreenCheck()) { |
49 full_screen_mode_timer_.Start(FROM_HERE, | 50 full_screen_mode_timer_.Start(FROM_HERE, |
50 base::TimeDelta::FromMilliseconds(kFullScreenModeCheckIntervalMs), | 51 base::TimeDelta::FromMilliseconds(kFullScreenModeCheckIntervalMs), |
51 base::Bind(&DisplaySettingsProvider::CheckFullScreenMode, | 52 base::Bind(&DisplaySettingsProvider::CheckFullScreenMode, |
52 base::Unretained(this), | 53 base::Unretained(this), |
53 PERFORM_FULLSCREEN_CHECK)); | 54 PERFORM_FULLSCREEN_CHECK)); |
54 } | 55 } |
55 } | 56 } |
56 | 57 |
57 void DisplaySettingsProvider::RemoveFullScreenObserver( | 58 void DisplaySettingsProvider::RemoveFullScreenObserver( |
58 FullScreenObserver* observer) { | 59 FullScreenObserver* observer) { |
59 full_screen_observers_.RemoveObserver(observer); | 60 full_screen_observers_.RemoveObserver(observer); |
60 | 61 |
61 if (full_screen_observers_.size() == 0) | 62 if (!full_screen_observers_.might_have_observers()) |
62 full_screen_mode_timer_.Stop(); | 63 full_screen_mode_timer_.Stop(); |
63 } | 64 } |
64 | 65 |
65 // TODO(scottmg): This should be moved to ui/. | 66 // TODO(scottmg): This should be moved to ui/. |
66 gfx::Rect DisplaySettingsProvider::GetPrimaryDisplayArea() const { | 67 gfx::Rect DisplaySettingsProvider::GetPrimaryDisplayArea() const { |
67 // TODO(scottmg): NativeScreen is wrong. http://crbug.com/133312 | 68 // TODO(scottmg): NativeScreen is wrong. http://crbug.com/133312 |
68 return gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().bounds(); | 69 return gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().bounds(); |
69 } | 70 } |
70 | 71 |
71 gfx::Rect DisplaySettingsProvider::GetPrimaryWorkArea() const { | 72 gfx::Rect DisplaySettingsProvider::GetPrimaryWorkArea() const { |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 bool DisplaySettingsProvider::IsFullScreen() { | 160 bool DisplaySettingsProvider::IsFullScreen() { |
160 return IsFullScreenMode(); | 161 return IsFullScreenMode(); |
161 } | 162 } |
162 | 163 |
163 #if defined(USE_AURA) | 164 #if defined(USE_AURA) |
164 // static | 165 // static |
165 DisplaySettingsProvider* DisplaySettingsProvider::Create() { | 166 DisplaySettingsProvider* DisplaySettingsProvider::Create() { |
166 return new DisplaySettingsProvider(); | 167 return new DisplaySettingsProvider(); |
167 } | 168 } |
168 #endif | 169 #endif |
OLD | NEW |