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

Side by Side Diff: chrome/browser/ui/views/frame/browser_frame.cc

Issue 8895003: Aura: Add --aura-laptop-mode to fill the workspace with a single window. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: maximize ALL the windows Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/views/frame/browser_frame.h" 5 #include "chrome/browser/ui/views/frame/browser_frame.h"
6 6
7 #include "base/command_line.h"
7 #include "chrome/browser/themes/theme_service.h" 8 #include "chrome/browser/themes/theme_service.h"
8 #include "chrome/browser/themes/theme_service_factory.h" 9 #include "chrome/browser/themes/theme_service_factory.h"
9 #include "chrome/browser/ui/browser.h" 10 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_list.h" 11 #include "chrome/browser/ui/browser_list.h"
11 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h" 12 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h"
12 #include "chrome/browser/ui/views/frame/browser_root_view.h" 13 #include "chrome/browser/ui/views/frame/browser_root_view.h"
13 #include "chrome/browser/ui/views/frame/browser_view.h" 14 #include "chrome/browser/ui/views/frame/browser_view.h"
14 #include "chrome/browser/ui/views/frame/native_browser_frame.h" 15 #include "chrome/browser/ui/views/frame/native_browser_frame.h"
15 #include "chrome/common/chrome_switches.h" 16 #include "chrome/common/chrome_switches.h"
16 #include "ui/base/theme_provider.h" 17 #include "ui/base/theme_provider.h"
17 #include "ui/views/widget/native_widget.h" 18 #include "ui/views/widget/native_widget.h"
18 19
19 #if defined(OS_WIN) && !defined(USE_AURA) 20 #if defined(OS_WIN) && !defined(USE_AURA)
20 #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h" 21 #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h"
21 #elif defined(OS_CHROMEOS) 22 #elif defined(OS_CHROMEOS)
22 #include "chrome/browser/chromeos/system/runtime_environment.h" 23 #include "chrome/browser/chromeos/system/runtime_environment.h"
23 #endif 24 #endif
24 25
26 #if defined(USE_AURA)
27 #include "ui/aura/aura_switches.h"
28 #endif
29
25 //////////////////////////////////////////////////////////////////////////////// 30 ////////////////////////////////////////////////////////////////////////////////
26 // BrowserFrame, public: 31 // BrowserFrame, public:
27 32
28 BrowserFrame::BrowserFrame(BrowserView* browser_view) 33 BrowserFrame::BrowserFrame(BrowserView* browser_view)
29 : native_browser_frame_(NULL), 34 : native_browser_frame_(NULL),
30 root_view_(NULL), 35 root_view_(NULL),
31 browser_frame_view_(NULL), 36 browser_frame_view_(NULL),
32 browser_view_(browser_view) { 37 browser_view_(browser_view) {
33 browser_view_->set_frame(this); 38 browser_view_->set_frame(this);
34 set_is_secondary_widget(false); 39 set_is_secondary_widget(false);
(...skipping 17 matching lines...) Expand all
52 params.show_state = browser_view_->browser()->GetSavedWindowShowState(); 57 params.show_state = browser_view_->browser()->GetSavedWindowShowState();
53 } 58 }
54 if (browser_view_->browser()->is_type_panel()) { 59 if (browser_view_->browser()->is_type_panel()) {
55 // We need to set the top-most bit when the panel window is created. 60 // We need to set the top-most bit when the panel window is created.
56 // There is a Windows bug/feature that would very likely prevent the window 61 // There is a Windows bug/feature that would very likely prevent the window
57 // from being changed to top-most after the window is created without 62 // from being changed to top-most after the window is created without
58 // activation. 63 // activation.
59 params.keep_on_top = true; 64 params.keep_on_top = true;
60 } 65 }
61 Init(params); 66 Init(params);
67 // TODO(jamescook): Do this for Aura laptop mode?
62 #if defined(OS_CHROMEOS) && !defined(USE_AURA) 68 #if defined(OS_CHROMEOS) && !defined(USE_AURA)
63 // On ChromeOS we always want top-level windows to appear active. 69 // On ChromeOS we always want top-level windows to appear active.
64 if (!browser_view_->IsBrowserTypePopup()) 70 if (!browser_view_->IsBrowserTypePopup())
65 DisableInactiveRendering(); 71 DisableInactiveRendering();
66 #endif 72 #endif
67 } 73 }
68 74
69 int BrowserFrame::GetMinimizeButtonOffset() const { 75 int BrowserFrame::GetMinimizeButtonOffset() const {
70 return native_browser_frame_->GetMinimizeButtonOffset(); 76 return native_browser_frame_->GetMinimizeButtonOffset();
71 } 77 }
(...skipping 17 matching lines...) Expand all
89 void BrowserFrame::TabStripDisplayModeChanged() { 95 void BrowserFrame::TabStripDisplayModeChanged() {
90 if (GetRootView()->has_children()) { 96 if (GetRootView()->has_children()) {
91 // Make sure the child of the root view gets Layout again. 97 // Make sure the child of the root view gets Layout again.
92 GetRootView()->child_at(0)->InvalidateLayout(); 98 GetRootView()->child_at(0)->InvalidateLayout();
93 } 99 }
94 GetRootView()->Layout(); 100 GetRootView()->Layout();
95 native_browser_frame_->TabStripDisplayModeChanged(); 101 native_browser_frame_->TabStripDisplayModeChanged();
96 } 102 }
97 103
98 /////////////////////////////////////////////////////////////////////////////// 104 ///////////////////////////////////////////////////////////////////////////////
99 // BrowserFrameWin, views::Window overrides: 105 // BrowserFrame, views::Widget overrides:
100 106
101 bool BrowserFrame::IsMaximized() const { 107 bool BrowserFrame::IsMaximized() const {
102 #if defined(OS_CHROMEOS) && !defined(USE_AURA) 108 // ChromeOS and Aura laptop mode use a single window filling the work area.
103 if (chromeos::system::runtime_environment::IsRunningOnChromeOS()) { 109 bool single_window_mode = false;
110 #if defined(USE_AURA)
111 single_window_mode =
112 CommandLine::ForCurrentProcess()->HasSwitch(switches::kAuraLaptopMode);
113 #elif defined(OS_CHROMEOS)
114 single_window_mode =
115 chromeos::system::runtime_environment::IsRunningOnChromeOS();
116 #endif
117 if (single_window_mode) {
104 return !IsFullscreen() && 118 return !IsFullscreen() &&
105 (!browser_view_->IsBrowserTypePopup() || Widget::IsMaximized()); 119 (!browser_view_->IsBrowserTypePopup() || Widget::IsMaximized());
106 } 120 }
107 #endif
108 return Widget::IsMaximized(); 121 return Widget::IsMaximized();
109 } 122 }
110 123
111 views::internal::RootView* BrowserFrame::CreateRootView() { 124 views::internal::RootView* BrowserFrame::CreateRootView() {
112 root_view_ = new BrowserRootView(browser_view_, this); 125 root_view_ = new BrowserRootView(browser_view_, this);
113 return root_view_; 126 return root_view_;
114 } 127 }
115 128
116 views::NonClientFrameView* BrowserFrame::CreateNonClientFrameView() { 129 views::NonClientFrameView* BrowserFrame::CreateNonClientFrameView() {
117 #if defined(OS_WIN) && !defined(USE_AURA) 130 #if defined(OS_WIN) && !defined(USE_AURA)
(...skipping 28 matching lines...) Expand all
146 // set ourselves as the last active browser window to ensure that we get 159 // set ourselves as the last active browser window to ensure that we get
147 // treated as such by the rest of Chrome. 160 // treated as such by the rest of Chrome.
148 BrowserList::SetLastActive(browser_view_->browser()); 161 BrowserList::SetLastActive(browser_view_->browser());
149 } 162 }
150 Widget::OnNativeWidgetActivationChanged(active); 163 Widget::OnNativeWidgetActivationChanged(active);
151 } 164 }
152 165
153 AvatarMenuButton* BrowserFrame::GetAvatarMenuButton() { 166 AvatarMenuButton* BrowserFrame::GetAvatarMenuButton() {
154 return browser_frame_view_->avatar_button(); 167 return browser_frame_view_->avatar_button();
155 } 168 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698