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

Side by Side Diff: chrome/browser/ui/panels/display_settings_provider.cc

Issue 11030017: Add context to gfx::Screen calls in support of simultaneous desktop+ash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix other os's Created 8 years, 2 months 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
OLDNEW
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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 {
72 return gfx::Screen::GetPrimaryDisplay().bounds(); 72 return gfx::Screen::GetPrimaryDisplay(
73 gfx::Screen::BadTwoWorldsContext()).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 gfx::Display display = gfx::Screen::GetPrimaryDisplay(
83 gfx::Screen::BadTwoWorldsContext());
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 gfx::Rect work_area = gfx::Screen::GetPrimaryDisplay(
94 gfx::Screen::BadTwoWorldsContext()).work_area();
92 #endif 95 #endif
93 return work_area; 96 return work_area;
94 } 97 }
95 98
96 void DisplaySettingsProvider::OnDisplaySettingsChanged() { 99 void DisplaySettingsProvider::OnDisplaySettingsChanged() {
97 gfx::Rect work_area = GetWorkArea(); 100 gfx::Rect work_area = GetWorkArea();
98 if (work_area == work_area_) 101 if (work_area == work_area_)
99 return; 102 return;
100 work_area_ = work_area; 103 work_area_ = work_area;
101 104
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 bool DisplaySettingsProvider::IsFullScreen() const { 170 bool DisplaySettingsProvider::IsFullScreen() const {
168 return IsFullScreenMode(); 171 return IsFullScreenMode();
169 } 172 }
170 173
171 #if defined(USE_AURA) 174 #if defined(USE_AURA)
172 // static 175 // static
173 DisplaySettingsProvider* DisplaySettingsProvider::Create() { 176 DisplaySettingsProvider* DisplaySettingsProvider::Create() {
174 return new DisplaySettingsProvider(); 177 return new DisplaySettingsProvider();
175 } 178 }
176 #endif 179 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698