[gtk+] widget: Queue redraw on gtk_widget_queue_allocate()



commit e39b8611bd20e602102a7e1b8e06e34c1b85cfe5
Author: Benjamin Otte <otte redhat com>
Date:   Fri Oct 30 02:06:01 2015 +0100

    widget: Queue redraw on gtk_widget_queue_allocate()
    
    Mirror the behavior of gtk_widget_queue_resize() and always queue a
    redraw. If we ever want to cause allocates without redraws we can add
    gtk_widget_queue_allocate_no_redraw() then.
    
    I had initially assumed gtk_widget_size_allocate() would take care of
    queueing redraws, but it does not do that when neither size nor position
    change. And that is obviously what's happening after
    gtk_widget_queue_allocate().
    
    Fixes buttons sometimes not redrawing (the record button in
    widget-factory after locking it, all buttons when switching to the dark
    theme).

 gtk/gtkwidget.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 2c03f72..fd53f58 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -5602,6 +5602,9 @@ gtk_widget_queue_allocate (GtkWidget *widget)
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
 
+  if (_gtk_widget_get_realized (widget))
+    gtk_widget_queue_draw (widget);
+
   gtk_widget_set_alloc_needed (widget);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]