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/logging.h" | 7 #include "base/logging.h" |
8 #include "chrome/browser/fullscreen.h" | 8 #include "chrome/browser/fullscreen.h" |
9 #include "ui/gfx/screen.h" | 9 #include "ui/gfx/screen.h" |
10 | 10 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
61 } | 61 } |
62 | 62 |
63 gfx::Rect DisplaySettingsProvider::GetDisplayArea() { | 63 gfx::Rect DisplaySettingsProvider::GetDisplayArea() { |
64 // Do the first-time initialization if not yet. | 64 // Do the first-time initialization if not yet. |
65 if (adjusted_work_area_.IsEmpty()) | 65 if (adjusted_work_area_.IsEmpty()) |
66 OnDisplaySettingsChanged(); | 66 OnDisplaySettingsChanged(); |
67 | 67 |
68 return adjusted_work_area_; | 68 return adjusted_work_area_; |
69 } | 69 } |
70 | 70 |
71 gfx::Rect DisplaySettingsProvider::GetPrimaryScreenArea() const { | 71 gfx::Rect DisplaySettingsProvider::GetPrimaryScreenArea() const { |
oshima
2012/10/10 17:58:23
just FYI: I think this should be moved under ui at
scottmg
2012/10/10 19:04:47
Added TODO.
| |
72 return gfx::Screen::GetPrimaryDisplay().bounds(); | 72 // TODO(scottmg): NativeScreen is wrong. http://crbug.com/133312 |
73 return gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().bounds(); | |
73 } | 74 } |
74 | 75 |
75 gfx::Rect DisplaySettingsProvider::GetWorkArea() const { | 76 gfx::Rect DisplaySettingsProvider::GetWorkArea() const { |
76 #if defined(OS_MACOSX) | 77 #if defined(OS_MACOSX) |
77 // On OSX, panels should be dropped all the way to the bottom edge of the | 78 // On OSX, panels should be dropped all the way to the bottom edge of the |
78 // screen (and overlap Dock). And we also want to exclude the system menu | 79 // screen (and overlap Dock). And we also want to exclude the system menu |
79 // area. Note that the rect returned from gfx::Screen util functions is in | 80 // area. Note that the rect returned from gfx::Screen util functions is in |
80 // platform-independent screen coordinates with (0, 0) as the top-left corner. | 81 // platform-independent screen coordinates with (0, 0) as the top-left corner. |
81 gfx::Display display = gfx::Screen::GetPrimaryDisplay(); | 82 // TODO(scottmg): NativeScreen is wrong. http://crbug.com/133312 |
83 gfx::Display display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); | |
82 gfx::Rect display_area = display.bounds(); | 84 gfx::Rect display_area = display.bounds(); |
83 gfx::Rect work_area = display.work_area(); | 85 gfx::Rect work_area = display.work_area(); |
84 int system_menu_height = work_area.y() - display_area.y(); | 86 int system_menu_height = work_area.y() - display_area.y(); |
85 if (system_menu_height > 0) { | 87 if (system_menu_height > 0) { |
86 display_area.set_y(display_area.y() + system_menu_height); | 88 display_area.set_y(display_area.y() + system_menu_height); |
87 display_area.set_height(display_area.height() - system_menu_height); | 89 display_area.set_height(display_area.height() - system_menu_height); |
88 } | 90 } |
89 return display_area; | 91 return display_area; |
90 #else | 92 #else |
91 gfx::Rect work_area = gfx::Screen::GetPrimaryDisplay().work_area(); | 93 // TODO(scottmg): NativeScreen is wrong. http://crbug.com/133312 |
94 gfx::Rect work_area = | |
95 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().work_area(); | |
96 return work_area; | |
92 #endif | 97 #endif |
93 return work_area; | |
94 } | 98 } |
95 | 99 |
96 void DisplaySettingsProvider::OnDisplaySettingsChanged() { | 100 void DisplaySettingsProvider::OnDisplaySettingsChanged() { |
97 gfx::Rect work_area = GetWorkArea(); | 101 gfx::Rect work_area = GetWorkArea(); |
98 if (work_area == work_area_) | 102 if (work_area == work_area_) |
99 return; | 103 return; |
100 work_area_ = work_area; | 104 work_area_ = work_area; |
101 | 105 |
102 OnAutoHidingDesktopBarChanged(); | 106 OnAutoHidingDesktopBarChanged(); |
103 } | 107 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
167 bool DisplaySettingsProvider::IsFullScreen() const { | 171 bool DisplaySettingsProvider::IsFullScreen() const { |
168 return IsFullScreenMode(); | 172 return IsFullScreenMode(); |
169 } | 173 } |
170 | 174 |
171 #if defined(USE_AURA) | 175 #if defined(USE_AURA) |
172 // static | 176 // static |
173 DisplaySettingsProvider* DisplaySettingsProvider::Create() { | 177 DisplaySettingsProvider* DisplaySettingsProvider::Create() { |
174 return new DisplaySettingsProvider(); | 178 return new DisplaySettingsProvider(); |
175 } | 179 } |
176 #endif | 180 #endif |
OLD | NEW |