diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-30 18:34:37 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-30 18:34:37 +0000 |
commit | e56d9c18bb1c2fb8ccde16654c6563a2174c3f34 (patch) | |
tree | c9780093e7e918ed35b96054a5f35e591fa85330 /chrome/browser/chromeos/browser_extenders.cc | |
parent | 172c5599ed8ef6fb4dd6eb6e77decfe0aee6d9e0 (diff) | |
download | chromium_src-e56d9c18bb1c2fb8ccde16654c6563a2174c3f34.zip chromium_src-e56d9c18bb1c2fb8ccde16654c6563a2174c3f34.tar.gz chromium_src-e56d9c18bb1c2fb8ccde16654c6563a2174c3f34.tar.bz2 |
Draw the normal window's frame in maximized mode. See BUG for more detail. Dan will investigate further when he has time.
BUG=28580, 727 (chromeos)
TEST=None
Review URL: http://codereview.chromium.org/436039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33302 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/browser_extenders.cc')
-rw-r--r-- | chrome/browser/chromeos/browser_extenders.cc | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/browser_extenders.cc b/chrome/browser/chromeos/browser_extenders.cc index 24ffd25..6fcc117 100644 --- a/chrome/browser/chromeos/browser_extenders.cc +++ b/chrome/browser/chromeos/browser_extenders.cc @@ -17,6 +17,7 @@ #include "chrome/browser/views/tabs/tab_overview_types.h" #include "chrome/browser/views/tabs/tab_strip.h" #include "chrome/browser/views/toolbar_view.h" +#include "chrome/common/x11_util.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "views/controls/button/button.h" @@ -26,6 +27,8 @@ namespace { +const char* kChromeOsWindowManagerName = "chromeos-wm"; + // NormalExtender adds ChromeOS specific controls and menus to a BrowserView // created with Browser::TYPE_NORMAL. This extender adds controls to // the title bar as follows: @@ -46,7 +49,8 @@ class NormalExtender : public BrowserExtender, compact_navigation_bar_(NULL), // CompactNavigationBar is disabled by default. // TODO(oshima): Get this info from preference. - compact_navigation_bar_enabled_(false) { + compact_navigation_bar_enabled_(false), + force_maximized_window_(false) { } virtual ~NormalExtender() {} @@ -62,13 +66,14 @@ class NormalExtender : public BrowserExtender, main_menu_->SetImage(views::CustomButton::BS_PUSHED, image); browser_view()->AddChildView(main_menu_); - compact_location_bar_.reset(new chromeos::CompactLocationBar(browser_view())); - compact_navigation_bar_ = - new chromeos::CompactNavigationBar(browser_view()->browser()); + Browser* browser = browser_view()->browser(); + compact_location_bar_.reset( + new chromeos::CompactLocationBar(browser_view())); + compact_navigation_bar_ = new chromeos::CompactNavigationBar(browser); browser_view()->AddChildView(compact_navigation_bar_); compact_navigation_bar_->Init(); status_area_ = new chromeos::StatusAreaView( - browser_view()->browser(), + browser, browser_view()->GetWindow()->GetNativeWindow()); browser_view()->AddChildView(status_area_); status_area_->Init(); @@ -83,6 +88,12 @@ class NormalExtender : public BrowserExtender, BrowserFrameGtk* gtk_frame = static_cast<BrowserFrameGtk*>(browser_view()->frame()); gtk_frame->GetNonClientView()->SetContextMenuController(this); + + if (browser->type() == Browser::TYPE_NORMAL) { + std::string wm_name; + force_maximized_window_ = x11_util::GetWindowManagerName(&wm_name) && + wm_name == kChromeOsWindowManagerName; + } } virtual gfx::Rect Layout(const gfx::Rect& bounds) { @@ -196,6 +207,10 @@ class NormalExtender : public BrowserExtender, compact_location_bar_->StartPopupTimer(); } + virtual bool ShouldForceMaximizedWindow() { + return force_maximized_window_; + } + private: // Shows the compact location bar under the selected tab. void ShowCompactLocationBarUnderSelectedTab() { @@ -250,6 +265,9 @@ class NormalExtender : public BrowserExtender, // CompactLocationBar view. scoped_ptr<chromeos::CompactLocationBar> compact_location_bar_; + // A flag to specify if the browser window should be maximized. + bool force_maximized_window_; + DISALLOW_COPY_AND_ASSIGN(NormalExtender); }; @@ -329,6 +347,10 @@ class PopupExtender : public BrowserExtender { virtual void OnMouseExitedFromTab(Tab* tab) {} + virtual bool ShouldForceMaximizedWindow() { + return false; + } + // Controls interactions with the window manager for popup panels. scoped_ptr<chromeos::PanelController> panel_controller_; |