summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/browser_extenders.cc
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-30 18:34:37 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-30 18:34:37 +0000
commite56d9c18bb1c2fb8ccde16654c6563a2174c3f34 (patch)
treec9780093e7e918ed35b96054a5f35e591fa85330 /chrome/browser/chromeos/browser_extenders.cc
parent172c5599ed8ef6fb4dd6eb6e77decfe0aee6d9e0 (diff)
downloadchromium_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.cc32
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_;