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/window_sizer/window_sizer.h" | 5 #include "chrome/browser/ui/window_sizer/window_sizer.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
11 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
12 #include "chrome/browser/ui/ash/ash_init.h" | 12 #include "chrome/browser/ui/ash/ash_init.h" |
13 #include "chrome/browser/ui/browser.h" | 13 #include "chrome/browser/ui/browser.h" |
14 #include "chrome/browser/ui/browser_list.h" | 14 #include "chrome/browser/ui/browser_list_impl.h" |
15 #include "chrome/browser/ui/browser_window.h" | 15 #include "chrome/browser/ui/browser_window.h" |
16 #include "chrome/browser/ui/browser_window_state.h" | 16 #include "chrome/browser/ui/browser_window_state.h" |
| 17 #include "chrome/browser/ui/host_desktop.h" |
17 #include "chrome/common/chrome_switches.h" | 18 #include "chrome/common/chrome_switches.h" |
18 #include "chrome/common/pref_names.h" | 19 #include "chrome/common/pref_names.h" |
19 #include "ui/gfx/screen.h" | 20 #include "ui/gfx/screen.h" |
20 | 21 |
21 // Minimum height of the visible part of a window. | 22 // Minimum height of the visible part of a window. |
22 const int kMinVisibleHeight = 30; | 23 const int kMinVisibleHeight = 30; |
23 // Minimum width of the visible part of a window. | 24 // Minimum width of the visible part of a window. |
24 const int kMinVisibleWidth = 30; | 25 const int kMinVisibleWidth = 30; |
25 | 26 |
26 class DefaultMonitorInfoProvider : public MonitorInfoProvider { | 27 class DefaultMonitorInfoProvider : public MonitorInfoProvider { |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 return false; | 106 return false; |
106 | 107 |
107 // If a reference browser is set, use its window. Otherwise find last | 108 // If a reference browser is set, use its window. Otherwise find last |
108 // active. Panels are never used as reference browsers as panels are | 109 // active. Panels are never used as reference browsers as panels are |
109 // specially positioned. | 110 // specially positioned. |
110 BrowserWindow* window = NULL; | 111 BrowserWindow* window = NULL; |
111 // Window may be null if browser is just starting up. | 112 // Window may be null if browser is just starting up. |
112 if (browser_ && browser_->window() && !browser_->window()->IsPanel()) { | 113 if (browser_ && browser_->window() && !browser_->window()->IsPanel()) { |
113 window = browser_->window(); | 114 window = browser_->window(); |
114 } else { | 115 } else { |
115 BrowserList::const_reverse_iterator it = BrowserList::begin_last_active(); | 116 // This code is only ran on the native desktop (on the ash desktop, |
116 BrowserList::const_reverse_iterator end = BrowserList::end_last_active(); | 117 // GetBoundsOverrideAsh should take over below before this is reached). |
117 for (; (it != end); ++it) { | 118 // TODO(gab): This code should go in a native desktop specific window |
| 119 // sizer as part of fixing crbug.com/175812. |
| 120 const chrome::BrowserListImpl* native_browser_list = |
| 121 chrome::BrowserListImpl::GetInstance( |
| 122 chrome::HOST_DESKTOP_TYPE_NATIVE); |
| 123 for (chrome::BrowserListImpl::const_reverse_iterator it = |
| 124 native_browser_list->begin_last_active(); |
| 125 it != native_browser_list->end_last_active(); ++it) { |
118 Browser* last_active = *it; | 126 Browser* last_active = *it; |
119 if (last_active && last_active->is_type_tabbed()) { | 127 if (last_active && last_active->is_type_tabbed()) { |
120 window = last_active->window(); | 128 window = last_active->window(); |
121 DCHECK(window); | 129 DCHECK(window); |
122 break; | 130 break; |
123 } | 131 } |
124 } | 132 } |
125 } | 133 } |
126 | 134 |
127 if (window) { | 135 if (window) { |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 | 400 |
393 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kStartMaximized)) | 401 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kStartMaximized)) |
394 return ui::SHOW_STATE_MAXIMIZED; | 402 return ui::SHOW_STATE_MAXIMIZED; |
395 | 403 |
396 if (browser_->initial_show_state() != ui::SHOW_STATE_DEFAULT) | 404 if (browser_->initial_show_state() != ui::SHOW_STATE_DEFAULT) |
397 return browser_->initial_show_state(); | 405 return browser_->initial_show_state(); |
398 | 406 |
399 // Otherwise we use the default which can be overridden later on. | 407 // Otherwise we use the default which can be overridden later on. |
400 return ui::SHOW_STATE_DEFAULT; | 408 return ui::SHOW_STATE_DEFAULT; |
401 } | 409 } |
OLD | NEW |