summaryrefslogtreecommitdiffstats
path: root/views/widget/widget_gtk.cc
diff options
context:
space:
mode:
authorscottbyer@chromium.org <scottbyer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-20 22:33:51 +0000
committerscottbyer@chromium.org <scottbyer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-20 22:33:51 +0000
commit101747a964502501506c2903983b14b2e741d230 (patch)
tree0e952fa7ca99fb91dbfa58982afe49076d5d0464 /views/widget/widget_gtk.cc
parentc6a7b86c54d8b920943c97d990268ba1aee7b04b (diff)
downloadchromium_src-101747a964502501506c2903983b14b2e741d230.zip
chromium_src-101747a964502501506c2903983b14b2e741d230.tar.gz
chromium_src-101747a964502501506c2903983b14b2e741d230.tar.bz2
Add in a browser test for dialog resizing, which was catching an issue with the way we were using GTK in toolkit views. Possibly related to 27365 or 38785.
http://code.google.com/p/chromium-os/issues/detail?id=4126 BUG=chromium-os:4126 TEST=HtmlDialogBrowserTest.SizeWindow Review URL: http://codereview.chromium.org/2768006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56919 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/widget_gtk.cc')
-rw-r--r--views/widget/widget_gtk.cc18
1 files changed, 14 insertions, 4 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index 1f7afb2..f74eef13 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -331,7 +331,7 @@ void WidgetGtk::RemoveChild(GtkWidget* child) {
// closed.
if (GTK_IS_CONTAINER(window_contents_)) {
gtk_container_remove(GTK_CONTAINER(window_contents_), child);
- gtk_views_fixed_set_use_allocated_size(child, false);
+ gtk_views_fixed_set_widget_size(child, 0, 0);
}
}
@@ -340,9 +340,7 @@ void WidgetGtk::ReparentChild(GtkWidget* child) {
}
void WidgetGtk::PositionChild(GtkWidget* child, int x, int y, int w, int h) {
- GtkAllocation alloc = { x, y, w, h };
- gtk_widget_size_allocate(child, &alloc);
- gtk_views_fixed_set_use_allocated_size(child, true);
+ gtk_views_fixed_set_widget_size(child, w, h);
gtk_fixed_move(GTK_FIXED(window_contents_), child, x, y);
}
@@ -429,6 +427,18 @@ RootView* WidgetGtk::GetRootViewForWidget(GtkWidget* widget) {
return static_cast<RootView*>(user_data);
}
+void WidgetGtk::GetRequestedSize(gfx::Size* out) const {
+ int width, height;
+ if (GTK_IS_VIEWS_FIXED(widget_) &&
+ gtk_views_fixed_get_widget_size(GetNativeView(), &width, &height)) {
+ out->SetSize(width, height);
+ } else {
+ GtkRequisition requisition;
+ gtk_widget_get_child_requisition(GetNativeView(), &requisition);
+ out->SetSize(requisition.width, requisition.height);
+ }
+}
+
////////////////////////////////////////////////////////////////////////////////
// WidgetGtk, ActiveWindowWatcherX::Observer implementation: