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

Unified Diff: chrome/browser/gtk/browser_window_gtk.cc

Issue 155075: Popup changes (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.h ('k') | chrome/browser/gtk/tabs/tab_strip_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/browser_window_gtk.cc
===================================================================
--- chrome/browser/gtk/browser_window_gtk.cc (revision 19932)
+++ chrome/browser/gtk/browser_window_gtk.cc (working copy)
@@ -56,6 +56,7 @@
#include "grit/theme_resources.h"
#if defined(LINUX2)
+#include "chrome/browser/views/panel_controller.h"
#include "chrome/browser/views/tabs/tab_overview_types.h"
#endif
@@ -359,6 +360,7 @@
full_screen_(false),
#if defined(LINUX2)
drag_active_(false),
+ panel_controller_(NULL),
#endif
frame_cursor_(NULL) {
use_custom_frame_.Init(prefs::kUseCustomChromeFrame,
@@ -456,8 +458,6 @@
}
void BrowserWindowGtk::Show() {
- gtk_widget_show(GTK_WIDGET(window_));
-
// The Browser associated with this browser window must become the active
// browser at the time Show() is called. This is the natural behaviour under
// Windows, but gtk_widget_show won't show the widget (and therefore won't
@@ -467,10 +467,17 @@
BrowserList::SetLastActive(browser());
#if defined(LINUX2)
- TabOverviewTypes::instance()->SetWindowType(
- GTK_WIDGET(window_), TabOverviewTypes::WINDOW_TYPE_CHROME_TOPLEVEL,
- NULL);
+ if (browser_->type() == Browser::TYPE_POPUP) {
+ panel_controller_ = new PanelController(this);
+ } else {
+ TabOverviewTypes::instance()->SetWindowType(
+ GTK_WIDGET(window_),
+ TabOverviewTypes::WINDOW_TYPE_CHROME_TOPLEVEL,
+ NULL);
+ }
#endif
+
+ gtk_widget_show(GTK_WIDGET(window_));
}
void BrowserWindowGtk::SetBounds(const gfx::Rect& bounds) {
@@ -498,6 +505,12 @@
// destruction, set window_ to NULL before any handlers will run.
window_ = NULL;
gtk_widget_destroy(window);
+
+#if defined(LINUX2)
+ if (panel_controller_) {
+ panel_controller_->Close();
+ }
+#endif
}
void BrowserWindowGtk::Activate() {
@@ -533,6 +546,11 @@
}
void BrowserWindowGtk::UpdateTitleBar() {
+#if defined(LINUX2)
+ if (panel_controller_)
+ panel_controller_->UpdateTitleBar();
+#endif
+
std::wstring title = browser_->GetCurrentPageTitle();
gtk_window_set_title(window_, WideToUTF8(title).c_str());
if (ShouldShowWindowIcon()) {
@@ -1002,8 +1020,15 @@
toolbar_.reset(new BrowserToolbarGtk(browser_.get(), this));
toolbar_->Init(browser_->profile(), window_);
- toolbar_->AddToolbarToBox(content_vbox_);
+ bool hide_tools = false;
+#if defined(LINUX2)
+ if (browser_->type() == Browser::TYPE_POPUP)
+ hide_tools = true;
+#endif
+ if (!hide_tools)
+ toolbar_->AddToolbarToBox(content_vbox_);
+
bookmark_bar_.reset(new BookmarkBarGtk(browser_->profile(), browser_.get(),
this));
bookmark_bar_->AddBookmarkbarToBox(content_vbox_);
@@ -1025,6 +1050,14 @@
contents_container_->AddContainerToBox(render_area_vbox_);
gtk_widget_show_all(render_area_vbox_);
+#if defined(LINUX2)
+ if (browser_->type() == Browser::TYPE_POPUP) {
+ // The window manager needs the min size for popups
+ gtk_widget_set_size_request(
+ GTK_WIDGET(window_), bounds_.width(), bounds_.height());
+ }
+#endif
+
// We have to realize the window before we try to apply a window shape mask.
gtk_widget_realize(GTK_WIDGET(window_));
state_ = gdk_window_get_state(GTK_WIDGET(window_)->window);
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.h ('k') | chrome/browser/gtk/tabs/tab_strip_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698