Commit 819ee326 authored by gab@chromium.org's avatar gab@chromium.org

Plumb HostDesktopType through window_sizer_ash.cc.

Getting rid of some more native desktop only BrowserList::const_iterator.

BUG=129187


Review URL: https://chromiumcodereview.appspot.com/12213053

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182002 0039d316-1c4b-4281-b951-d872f2087c98
parent 4ecb2c0e
...@@ -10,9 +10,10 @@ ...@@ -10,9 +10,10 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_list_impl.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/fullscreen/fullscreen_controller.h" #include "chrome/browser/ui/fullscreen/fullscreen_controller.h"
#include "chrome/browser/ui/host_desktop.h"
#include "ui/aura/root_window.h" #include "ui/aura/root_window.h"
#include "ui/aura/window.h" #include "ui/aura/window.h"
#include "ui/aura/window_delegate.h" #include "ui/aura/window_delegate.h"
...@@ -39,13 +40,16 @@ bool IsValidBrowser(Browser* browser, const gfx::Rect& bounds_in_screen) { ...@@ -39,13 +40,16 @@ bool IsValidBrowser(Browser* browser, const gfx::Rect& bounds_in_screen) {
// on the screen defined by |bounds_in_screen| and visible. // on the screen defined by |bounds_in_screen| and visible.
bool IsValidToplevelWindow(aura::Window* window, bool IsValidToplevelWindow(aura::Window* window,
const gfx::Rect& bounds_in_screen) { const gfx::Rect& bounds_in_screen) {
for (BrowserList::const_iterator iter = BrowserList::begin(); const chrome::BrowserListImpl* ash_browser_list =
iter != BrowserList::end(); chrome::BrowserListImpl::GetInstance(chrome::HOST_DESKTOP_TYPE_ASH);
for (chrome::BrowserListImpl::const_iterator iter = ash_browser_list->begin();
iter != ash_browser_list->end();
++iter) { ++iter) {
Browser* browser = *iter; Browser* browser = *iter;
if (browser && browser->window() && if (browser && browser->window() &&
browser->window()->GetNativeWindow() == window) browser->window()->GetNativeWindow() == window) {
return IsValidBrowser(browser, bounds_in_screen); return IsValidBrowser(browser, bounds_in_screen);
}
} }
// A window which has no browser associated with it is probably not a window // A window which has no browser associated with it is probably not a window
// of which we want to copy the size from. // of which we want to copy the size from.
...@@ -58,8 +62,9 @@ aura::Window* GetTopWindow(const gfx::Rect& bounds_in_screen) { ...@@ -58,8 +62,9 @@ aura::Window* GetTopWindow(const gfx::Rect& bounds_in_screen) {
// Get the active window. // Get the active window.
aura::Window* window = ash::wm::GetActiveWindow(); aura::Window* window = ash::wm::GetActiveWindow();
if (window && window->type() == aura::client::WINDOW_TYPE_NORMAL && if (window && window->type() == aura::client::WINDOW_TYPE_NORMAL &&
window->IsVisible() && IsValidToplevelWindow(window, bounds_in_screen)) window->IsVisible() && IsValidToplevelWindow(window, bounds_in_screen)) {
return window; return window;
}
// Get a list of all windows. // Get a list of all windows.
const std::vector<aura::Window*> windows = const std::vector<aura::Window*> windows =
...@@ -83,8 +88,10 @@ aura::Window* GetTopWindow(const gfx::Rect& bounds_in_screen) { ...@@ -83,8 +88,10 @@ aura::Window* GetTopWindow(const gfx::Rect& bounds_in_screen) {
aura::Window* window = windows[i % windows.size()]; aura::Window* window = windows[i % windows.size()];
if (window && window->type() == aura::client::WINDOW_TYPE_NORMAL && if (window && window->type() == aura::client::WINDOW_TYPE_NORMAL &&
bounds_in_screen.Intersects(window->GetBoundsInScreen()) && bounds_in_screen.Intersects(window->GetBoundsInScreen()) &&
window->IsVisible() && IsValidToplevelWindow(window, bounds_in_screen)) window->IsVisible()
&& IsValidToplevelWindow(window, bounds_in_screen)) {
return window; return window;
}
} }
return NULL; return NULL;
} }
...@@ -93,8 +100,10 @@ aura::Window* GetTopWindow(const gfx::Rect& bounds_in_screen) { ...@@ -93,8 +100,10 @@ aura::Window* GetTopWindow(const gfx::Rect& bounds_in_screen) {
// the |bounds_in_screen| rectangle. // the |bounds_in_screen| rectangle.
int GetNumberOfValidTopLevelBrowserWindows(const gfx::Rect& bounds_in_screen) { int GetNumberOfValidTopLevelBrowserWindows(const gfx::Rect& bounds_in_screen) {
int count = 0; int count = 0;
for (BrowserList::const_iterator iter = BrowserList::begin(); const chrome::BrowserListImpl* ash_browser_list =
iter != BrowserList::end(); chrome::BrowserListImpl::GetInstance(chrome::HOST_DESKTOP_TYPE_ASH);
for (chrome::BrowserListImpl::const_iterator iter = ash_browser_list->begin();
iter != ash_browser_list->end();
++iter) { ++iter) {
if (IsValidBrowser(*iter, bounds_in_screen)) if (IsValidBrowser(*iter, bounds_in_screen))
count++; count++;
...@@ -128,6 +137,11 @@ bool WindowSizer::GetBoundsOverrideAsh(gfx::Rect* bounds_in_screen, ...@@ -128,6 +137,11 @@ bool WindowSizer::GetBoundsOverrideAsh(gfx::Rect* bounds_in_screen,
ui::WindowShowState* show_state) const { ui::WindowShowState* show_state) const {
DCHECK(show_state); DCHECK(show_state);
DCHECK(bounds_in_screen); DCHECK(bounds_in_screen);
if (browser_ &&
browser_->host_desktop_type() != chrome::HOST_DESKTOP_TYPE_ASH) {
return false;
}
bounds_in_screen->SetRect(0, 0, 0, 0); bounds_in_screen->SetRect(0, 0, 0, 0);
ui::WindowShowState passed_show_state = *show_state; ui::WindowShowState passed_show_state = *show_state;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment