summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-02 15:17:16 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-02 15:17:16 +0000
commita7859412517983e37dee8fabf398ca27701c5ad0 (patch)
tree40dfc13819789b8daa3729219022e45babbab704 /views
parentf67131a62cfde0397fe4f442fdf7aa4925986c73 (diff)
downloadchromium_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.cc5
-rw-r--r--views/window/window_gtk.cc1
-rw-r--r--views/window/window_gtk.h3
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_;