From addcc64b9cbb2fb1225080075ad3112a3d93d839 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Fri, 24 Dec 2010 02:10:07 +0900 Subject: [PATCH] Slightly less special casing in GtkWindow for gtk_widget_is_toplevel() Also take care of setting the resize-mode at realize time depending on toplevelness. --- gtk/gtkwindow.c | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 5d724d0bc..477cccd6a 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -4867,6 +4867,8 @@ gtk_window_realize (GtkWidget *widget) if (gtk_widget_get_parent_window (widget)) { + gtk_container_set_resize_mode (GTK_CONTAINER (widget), GTK_RESIZE_PARENT); + gtk_widget_set_realized (widget, TRUE); attributes.x = allocation.x; @@ -4894,6 +4896,8 @@ gtk_window_realize (GtkWidget *widget) return; } + gtk_container_set_resize_mode (GTK_CONTAINER (window), GTK_RESIZE_QUEUE); + /* ensure widget tree is properly size allocated */ if (allocation.x == -1 && allocation.y == -1 && @@ -5356,8 +5360,7 @@ static gboolean gtk_window_state_event (GtkWidget *widget, GdkEventWindowState *event) { - if (gtk_widget_is_toplevel (GTK_WIDGET (widget))) - update_grip_visibility (GTK_WINDOW (widget)); + update_grip_visibility (GTK_WINDOW (widget)); return FALSE; } @@ -5368,12 +5371,9 @@ gtk_window_direction_changed (GtkWidget *widget, { GtkWindow *window = GTK_WINDOW (widget); - if (gtk_widget_is_toplevel (GTK_WIDGET (widget))) - { - set_grip_cursor (window); - set_grip_position (window); - set_grip_shape (window); - } + set_grip_cursor (window); + set_grip_position (window); + set_grip_shape (window); } static void @@ -5382,8 +5382,7 @@ gtk_window_state_changed (GtkWidget *widget, { GtkWindow *window = GTK_WINDOW (widget); - if (gtk_widget_is_toplevel (GTK_WIDGET (widget))) - update_grip_visibility (window); + update_grip_visibility (window); } static void @@ -7345,23 +7344,6 @@ gtk_window_draw (GtkWidget *widget, GtkStyleContext *context; gboolean ret = FALSE; - /* If the window is not toplevel anymore than it's embedded somewhere, - * so just chain up and paint the children */ - if (!gtk_widget_is_toplevel (widget)) - { - if (!gtk_widget_get_app_paintable (widget)) - gtk_paint_flat_box (gtk_widget_get_style (widget), - cr, - gtk_widget_get_state (widget), - GTK_SHADOW_NONE, - widget, "window", - 0, 0, - gtk_widget_get_allocated_width (widget), - gtk_widget_get_allocated_height (widget)); - - return GTK_WIDGET_CLASS (gtk_window_parent_class)->draw (widget, cr); - } - context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); -- 2.43.2