From ab019f3ade7ef35ba9a42a0472e22b436d53e9f2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 30 Jun 2008 05:17:02 +0000 Subject: [PATCH] Avoid unnecessary redraws when resizing. Patch by Owen Taylor * gtk/gtkwindow.c: Avoid unnecessary redraws when resizing. Patch by Owen Taylor svn path=/trunk/; revision=20705 --- ChangeLog | 7 +++++++ gtk/gtkwindow.c | 16 ++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 775d7cc584..8849bd6ad8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-06-30 Matthias Clasen + + Bug 540310 – Avoid unnecessary repaints when resizing GtkWindow + + * gtk/gtkwindow.c: Avoid unnecessary redraws when resizing. + Patch by Owen Taylor + 2008-06-29 Behdad Esfahbod Bug 530255 – GtkAboutDialog cuts off comments label diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index dafc61423e..a565cf165f 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1549,7 +1549,7 @@ gtk_window_set_policy (GtkWindow *window, g_object_notify (G_OBJECT (window), "resizable"); g_object_thaw_notify (G_OBJECT (window)); - gtk_widget_queue_resize (GTK_WIDGET (window)); + gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window)); } static gboolean @@ -1765,7 +1765,7 @@ gtk_window_set_position (GtkWindow *window, */ info->position_constraints_changed = TRUE; - gtk_widget_queue_resize (GTK_WIDGET (window)); + gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window)); } window->position = position; @@ -2690,7 +2690,7 @@ gtk_window_set_geometry_hints (GtkWindow *window, gtk_window_set_gravity (window, geometry->win_gravity); } - gtk_widget_queue_resize (GTK_WIDGET (window)); + gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window)); } /** @@ -3689,7 +3689,7 @@ gtk_window_set_default_size_internal (GtkWindow *window, g_object_thaw_notify (G_OBJECT (window)); - gtk_widget_queue_resize (GTK_WIDGET (window)); + gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window)); } /** @@ -3804,7 +3804,7 @@ gtk_window_resize (GtkWindow *window, info->resize_width = width; info->resize_height = height; - gtk_widget_queue_resize (GTK_WIDGET (window)); + gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window)); } /** @@ -6039,7 +6039,7 @@ gtk_window_move_resize (GtkWindow *window) */ info->last = saved_last_info; - gtk_widget_queue_resize (widget); /* migth recurse for GTK_RESIZE_IMMEDIATE */ + gtk_widget_queue_resize_no_redraw (widget); /* migth recurse for GTK_RESIZE_IMMEDIATE */ } return; /* Bail out, we didn't really process the move/resize */ @@ -6132,7 +6132,7 @@ gtk_window_move_resize (GtkWindow *window) */ if (container->resize_mode == GTK_RESIZE_QUEUE) { - gtk_widget_queue_resize (widget); + gtk_widget_queue_resize_no_redraw (widget); _gtk_container_dequeue_resize_handler (container); } } @@ -7049,7 +7049,7 @@ gtk_window_set_gravity (GtkWindow *window, /* gtk_window_move_resize() will adapt gravity */ - gtk_widget_queue_resize (GTK_WIDGET (window)); + gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window)); g_object_notify (G_OBJECT (window), "gravity"); } -- GitLab