diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-15 15:22:57 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-15 15:22:57 +0000 |
commit | e363ceb53762d31312fc8594809706ce46093cd7 (patch) | |
tree | 5e428c7a19ca3da323896d62cc454ad2ae09a357 /views/widget | |
parent | 615b34c6a2a0a325606cea4d0c0919e927fa0fa7 (diff) | |
download | chromium_src-e363ceb53762d31312fc8594809706ce46093cd7.zip chromium_src-e363ceb53762d31312fc8594809706ce46093cd7.tar.gz chromium_src-e363ceb53762d31312fc8594809706ce46093cd7.tar.bz2 |
Make WidgetGtk::SetBounds use a single call if it can.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/125087
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18388 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r-- | views/widget/widget_gtk.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc index 776af0d..7d7e74b 100644 --- a/views/widget/widget_gtk.cc +++ b/views/widget/widget_gtk.cc @@ -262,6 +262,11 @@ void WidgetGtk::SetBounds(const gfx::Rect& bounds) { WidgetGtk* parent_widget = GetViewForNative(gtk_widget_get_parent(widget_)); parent_widget->PositionChild(widget_, bounds.x(), bounds.y(), bounds.width(), bounds.height()); + } else if (GTK_WIDGET_MAPPED(widget_)) { + // If the widget is mapped (on screen), we can move and resize with one + // call, which avoids two separate window manager steps. + gdk_window_move_resize(widget_->window, bounds.x(), bounds.y(), + bounds.width(), bounds.height()); } else { GtkWindow* gtk_window = GTK_WINDOW(widget_); // TODO: this may need to set an initial size if not showing. |