diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-02 15:17:16 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-02 15:17:16 +0000 |
commit | a7859412517983e37dee8fabf398ca27701c5ad0 (patch) | |
tree | 40dfc13819789b8daa3729219022e45babbab704 /views | |
parent | f67131a62cfde0397fe4f442fdf7aa4925986c73 (diff) | |
download | chromium_src-a7859412517983e37dee8fabf398ca27701c5ad0.zip chromium_src-a7859412517983e37dee8fabf398ca27701c5ad0.tar.gz chromium_src-a7859412517983e37dee8fabf398ca27701c5ad0.tar.bz2 |
Fixes a couple of bugs encountered in getting info bubbles to work:
. Initial bounds of windows weren't being set.
. Widgets were created initially shown. This was bad for windows as
the window would end up showing prematurely.
. WindowGtk::window_state_ wasn't being initialized.
. And then actual InfoBubble stuff: properly init the bubble, show it
and position it on the monitor.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/118102
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17401 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r-- | views/widget/widget_gtk.cc | 5 | ||||
-rw-r--r-- | views/window/window_gtk.cc | 1 | ||||
-rw-r--r-- | views/window/window_gtk.h | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc index 01b6b87..f79601e 100644 --- a/views/widget/widget_gtk.cc +++ b/views/widget/widget_gtk.cc @@ -163,6 +163,10 @@ void WidgetGtk::Init(GtkWidget* parent, parent_widget->AddChild(widget_); parent_widget->PositionChild(widget_, bounds.x(), bounds.y(), bounds.width(), bounds.height()); + } else { + if (bounds.width() > 0 && bounds.height() > 0) + gtk_window_resize(GTK_WINDOW(widget_), bounds.width(), bounds.height()); + gtk_window_move(GTK_WINDOW(widget_), bounds.x(), bounds.y()); } } @@ -364,7 +368,6 @@ void WidgetGtk::CreateGtkWidget() { SetViewForNative(child_widget_parent_, this); } - gtk_widget_show(widget_); } void WidgetGtk::OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) { diff --git a/views/window/window_gtk.cc b/views/window/window_gtk.cc index 3979831..c5b2208 100644 --- a/views/window/window_gtk.cc +++ b/views/window/window_gtk.cc @@ -189,6 +189,7 @@ WindowGtk::WindowGtk(WindowDelegate* window_delegate) is_modal_(false), window_delegate_(window_delegate), non_client_view_(new NonClientView(this)), + window_state_(GDK_WINDOW_STATE_WITHDRAWN), window_closed_(false) { is_window_ = true; window_delegate_->window_.reset(this); diff --git a/views/window/window_gtk.h b/views/window/window_gtk.h index 80ed1dd..a670536 100644 --- a/views/window/window_gtk.h +++ b/views/window/window_gtk.h @@ -96,8 +96,9 @@ class WindowGtk : public WidgetGtk, public Window { // desired implementation before calling |Init|. NonClientView* non_client_view_; - + // State of the window, such as fullscreen, hidden... GdkWindowState window_state_; + // Set to true if the window is in the process of closing. bool window_closed_; |