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

Unified Diff: chrome/browser/ui/window_sizer/window_sizer.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: tidy 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/window_sizer/window_sizer.cc
diff --git a/chrome/browser/ui/window_sizer/window_sizer.cc b/chrome/browser/ui/window_sizer/window_sizer.cc
index ba299daf4df930caafeac701f7c13eccd3a2cb92..e33378e7d5d482c129684f933e9b441f6dab6114 100644
--- a/chrome/browser/ui/window_sizer/window_sizer.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer.cc
@@ -25,14 +25,17 @@ class DefaultMonitorInfoProvider : public MonitorInfoProvider {
public:
// Overridden from MonitorInfoProvider:
virtual gfx::Rect GetPrimaryDisplayWorkArea() const OVERRIDE {
- return gfx::Screen::GetPrimaryDisplay().work_area();
+ return gfx::Screen::GetPrimaryDisplay(
+ gfx::Screen::BadTwoWorldsContext()).work_area();
}
virtual gfx::Rect GetPrimaryDisplayBounds() const OVERRIDE {
- return gfx::Screen::GetPrimaryDisplay().bounds();
+ return gfx::Screen::GetPrimaryDisplay(
+ gfx::Screen::BadTwoWorldsContext()).bounds();
}
virtual gfx::Rect GetMonitorWorkAreaMatching(
const gfx::Rect& match_rect) const OVERRIDE {
- return gfx::Screen::GetDisplayMatching(match_rect).work_area();
+ return gfx::Screen::GetDisplayMatching(
+ gfx::Screen::BadTwoWorldsContext(), match_rect).work_area();
}
};
@@ -158,24 +161,25 @@ void WindowSizer::GetBrowserWindowBounds(const std::string& app_name,
const Browser* browser,
gfx::Rect* window_bounds) {
const WindowSizer sizer(new DefaultStateProvider(app_name, browser), browser);
- sizer.DetermineWindowBounds(specified_bounds, window_bounds);
+ sizer.DetermineWindowBounds(specified_bounds, window_bounds, browser);
}
///////////////////////////////////////////////////////////////////////////////
// WindowSizer, private:
void WindowSizer::DetermineWindowBounds(const gfx::Rect& specified_bounds,
- gfx::Rect* bounds) const {
+ gfx::Rect* bounds,
+ const Browser* browser) const {
*bounds = specified_bounds;
if (bounds->IsEmpty()) {
- if (GetBoundsOverride(specified_bounds, bounds))
+ if (GetBoundsOverride(specified_bounds, bounds, browser))
return;
// See if there's saved placement information.
- if (!GetLastWindowBounds(bounds)) {
- if (!GetSavedWindowBounds(bounds)) {
+ if (!GetLastWindowBounds(bounds, browser)) {
+ if (!GetSavedWindowBounds(bounds, browser)) {
// No saved placement, figure out some sensible default size based on
// the user's screen size.
- GetDefaultWindowBounds(bounds);
+ GetDefaultWindowBounds(bounds, browser);
}
}
} else {
@@ -192,7 +196,8 @@ void WindowSizer::DetermineWindowBounds(const gfx::Rect& specified_bounds,
}
}
-bool WindowSizer::GetLastWindowBounds(gfx::Rect* bounds) const {
+bool WindowSizer::GetLastWindowBounds(gfx::Rect* bounds,
+ const Browser* browser) const {
DCHECK(bounds);
if (!state_provider_.get() ||
!state_provider_->GetLastActiveWindowState(bounds))
@@ -201,28 +206,31 @@ bool WindowSizer::GetLastWindowBounds(gfx::Rect* bounds) const {
bounds->Offset(kWindowTilePixels, kWindowTilePixels);
AdjustBoundsToBeVisibleOnMonitorContaining(last_window_bounds,
gfx::Rect(),
- bounds);
+ bounds,
+ browser);
return true;
}
-bool WindowSizer::GetSavedWindowBounds(gfx::Rect* bounds) const {
+bool WindowSizer::GetSavedWindowBounds(gfx::Rect* bounds,
+ const Browser* browser) const {
DCHECK(bounds);
gfx::Rect saved_work_area;
if (!state_provider_.get() ||
!state_provider_->GetPersistentState(bounds, &saved_work_area))
return false;
- AdjustBoundsToBeVisibleOnMonitorContaining(*bounds, saved_work_area, bounds);
+ AdjustBoundsToBeVisibleOnMonitorContaining(
+ *bounds, saved_work_area, bounds, browser);
return true;
}
-void WindowSizer::GetDefaultWindowBounds(gfx::Rect* default_bounds) const {
-#if defined(USE_ASH)
- // TODO(beng): insufficient but currently necessary. http://crbug.com/133312
- if (chrome::ShouldOpenAshOnStartup()) {
+void WindowSizer::GetDefaultWindowBounds(gfx::Rect* default_bounds,
+ const Browser* browser) const {
+ // TODO(scottmg): http://crbug.com/133312
+ if (chrome::GetHostDesktopTypeForBrowser(browser) ==
+ chrome::HOST_DESKTOP_TYPE_ASH) {
GetDefaultWindowBoundsAsh(default_bounds);
return;
}
-#endif
DCHECK(default_bounds);
DCHECK(monitor_info_provider_.get());
@@ -259,7 +267,8 @@ void WindowSizer::GetDefaultWindowBounds(gfx::Rect* default_bounds) const {
void WindowSizer::AdjustBoundsToBeVisibleOnMonitorContaining(
const gfx::Rect& other_bounds,
const gfx::Rect& saved_work_area,
- gfx::Rect* bounds) const {
+ gfx::Rect* bounds,
+ const Browser* browser) const {
DCHECK(bounds);
DCHECK(monitor_info_provider_.get());
@@ -270,7 +279,7 @@ void WindowSizer::AdjustBoundsToBeVisibleOnMonitorContaining(
// If height or width are 0, reset to the default size.
gfx::Rect default_bounds;
- GetDefaultWindowBounds(&default_bounds);
+ GetDefaultWindowBounds(&default_bounds, browser);
if (bounds->height() <= 0)
bounds->set_height(default_bounds.height());
if (bounds->width() <= 0)
@@ -332,11 +341,13 @@ void WindowSizer::AdjustBoundsToBeVisibleOnMonitorContaining(
bool WindowSizer::GetBoundsOverride(
const gfx::Rect& specified_bounds,
- gfx::Rect* bounds) const {
+ gfx::Rect* bounds,
+ const Browser* browser) const {
#if defined(USE_ASH)
- // TODO(beng): insufficient but currently necessary. http://crbug.com/133312
- if (chrome::ShouldOpenAshOnStartup())
- return GetBoundsOverrideAsh(specified_bounds, bounds);
+ // TODO(scottmg): http://crbug.com/133312
+ if (chrome::GetHostDesktopTypeForBrowser(browser) ==
+ chrome::HOST_DESKTOP_TYPE_ASH)
+ return GetBoundsOverrideAsh(specified_bounds, bounds, browser);
#endif
return false;
}

Powered by Google App Engine
This is Rietveld 408576698