diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-26 19:32:35 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-26 19:32:35 +0000 |
commit | a0804c88148d24e68f25b6d7d9786b588aa57caf (patch) | |
tree | cbe7699af0d99d0a3b42132bddf1536f5f84f9f3 /chrome/browser/gtk | |
parent | 77c6996347b6808caf1307816955d971f6b66b8a (diff) | |
download | chromium_src-a0804c88148d24e68f25b6d7d9786b588aa57caf.zip chromium_src-a0804c88148d24e68f25b6d7d9786b588aa57caf.tar.gz chromium_src-a0804c88148d24e68f25b6d7d9786b588aa57caf.tar.bz2 |
Fix fullscreen mode in chromeos=1 build.
* added member vars for main menu and compact navbar
* show/hide main menu/compact navbar/status area upon fullscreen mode change.
I'll work on linux_views as well.
BUG=22805
TEST=Create new window from compact navbar menu, and toggle full screen mode
Review URL: http://codereview.chromium.org/332027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30073 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 41 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.h | 6 |
2 files changed, 37 insertions, 10 deletions
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index b59b483..e01be2b 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -540,6 +540,8 @@ BrowserWindowGtk::BrowserWindowGtk(Browser* browser) panel_controller_(NULL), compact_navigation_bar_(NULL), status_area_(NULL), + main_menu_button_(NULL), + compact_navbar_hbox_(NULL), #endif frame_cursor_(NULL), is_active_(true), @@ -1413,6 +1415,14 @@ void BrowserWindowGtk::OnStateChanged(GdkWindowState state, tabstrip_->Hide(); if (IsBookmarkBarSupported()) bookmark_bar_->EnterFullscreen(); +#if defined(OS_CHROMEOS) + if (main_menu_button_) + gtk_widget_hide(main_menu_button_->widget()); + if (compact_navbar_hbox_) + gtk_widget_hide(compact_navbar_hbox_); + if (status_area_) + status_area_->GetWidget()->Hide(); +#endif } else { UpdateCustomFrame(); ShowSupportedWindowFeatures(); @@ -1611,7 +1621,6 @@ void BrowserWindowGtk::InitWidgets() { #if defined(OS_CHROMEOS) GtkWidget* titlebar_hbox = NULL; - GtkWidget* navbar_hbox = NULL; GtkWidget* status_container = NULL; bool has_compact_nav_bar = next_window_should_use_compact_nav_; if (browser_->type() == Browser::TYPE_NORMAL) { @@ -1622,22 +1631,23 @@ void BrowserWindowGtk::InitWidgets() { gtk_widget_show(titlebar_hbox); // Main menu button. - CustomDrawButton* main_menu_button = + main_menu_button_ = new CustomDrawButton(IDR_MAIN_MENU_BUTTON, IDR_MAIN_MENU_BUTTON, IDR_MAIN_MENU_BUTTON, 0); - gtk_widget_show(main_menu_button->widget()); - g_signal_connect(G_OBJECT(main_menu_button->widget()), "clicked", + gtk_widget_show(main_menu_button_->widget()); + g_signal_connect(G_OBJECT(main_menu_button_->widget()), "clicked", G_CALLBACK(OnMainMenuButtonClicked), this); - GTK_WIDGET_UNSET_FLAGS(main_menu_button->widget(), GTK_CAN_FOCUS); - gtk_box_pack_start(GTK_BOX(titlebar_hbox), main_menu_button->widget(), + GTK_WIDGET_UNSET_FLAGS(main_menu_button_->widget(), GTK_CAN_FOCUS); + gtk_box_pack_start(GTK_BOX(titlebar_hbox), main_menu_button_->widget(), FALSE, FALSE, 0); MainMenu::ScheduleCreation(); if (has_compact_nav_bar) { - navbar_hbox = gtk_hbox_new(FALSE, 0); - gtk_widget_show(navbar_hbox); - gtk_box_pack_start(GTK_BOX(titlebar_hbox), navbar_hbox, FALSE, FALSE, 0); + compact_navbar_hbox_ = gtk_hbox_new(FALSE, 0); + gtk_widget_show(compact_navbar_hbox_); + gtk_box_pack_start(GTK_BOX(titlebar_hbox), compact_navbar_hbox_, + FALSE, FALSE, 0); // Reset the compact nav bit now that we're creating the next toplevel // window. Code below will use our local has_compact_nav_bar variable. @@ -1761,7 +1771,7 @@ void BrowserWindowGtk::InitWidgets() { // parent is also a WidgetGtk. Then we can parent the native widget // afterwards. clb_widget->Init(NULL, gfx::Rect(0, 0, 100, 30)); - gtk_widget_reparent(clb_widget->GetNativeView(), navbar_hbox); + gtk_widget_reparent(clb_widget->GetNativeView(), compact_navbar_hbox_); compact_navigation_bar_ = new CompactNavigationBar(browser_.get()); @@ -2144,6 +2154,17 @@ void BrowserWindowGtk::ShowSupportedWindowFeatures() { if (IsBookmarkBarSupported()) MaybeShowBookmarkBar(browser_->GetSelectedTabContents(), false); + +#if defined(OS_CHROMEOS) + if (main_menu_button_) + gtk_widget_show(main_menu_button_->widget()); + + if (compact_navbar_hbox_) + gtk_widget_show(compact_navbar_hbox_); + + if (status_area_) + status_area_->GetWidget()->Show(); +#endif } void BrowserWindowGtk::HideUnsupportedWindowFeatures() { diff --git a/chrome/browser/gtk/browser_window_gtk.h b/chrome/browser/gtk/browser_window_gtk.h index ee48c9b..cbe7563 100644 --- a/chrome/browser/gtk/browser_window_gtk.h +++ b/chrome/browser/gtk/browser_window_gtk.h @@ -394,6 +394,12 @@ class BrowserWindowGtk : public BrowserWindow, CompactNavigationBar* compact_navigation_bar_; StatusAreaView* status_area_; + // The MainMenu button. + CustomDrawButton* main_menu_button_; + + // A hbox container for the compact navigation bar. + GtkWidget* compact_navbar_hbox_; + static bool next_window_should_use_compact_nav_; #endif |