diff options
author | Tim Janik <timj@gtk.org> | 1999-01-13 12:39:17 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1999-01-13 12:39:17 +0000 |
commit | 55b365d76da826a4ade63291dc1357f6f15eb851 (patch) | |
tree | 68e6c5b1b68f262bb4c710ca0c08b278c3f799a3 /gtk/gtkwidget.c | |
parent | de7ffb4a1cc6a6a56992e7b7c7c4b4769163ccfe (diff) | |
download | gtk+-55b365d76da826a4ade63291dc1357f6f15eb851.tar.gz |
eliminate queue_clears or queue_draws where we know that expose events
Wed Jan 13 13:28:00 1999 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c: eliminate queue_clears or queue_draws where we know
that expose events will be generated.
(gtk_widget_map): only queue_draw for NO_WINDOW widgets.
(gtk_widget_unmap): only queue_clear_child for NO_WINDOW widgets.
(gtk_widget_size_allocate): we don't need a queue_clear on changing
allocations of !NO_WINDOW widgets, we do still need a full redraw for
them though.
* gtk/gtklabel.c (gtk_label_set_text): check whether the new string
actually differs from the original.
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r-- | gtk/gtkwidget.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 715d3bb60c..e3ca39afb0 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -1578,7 +1578,8 @@ gtk_widget_map (GtkWidget *widget) gtk_signal_emit (GTK_OBJECT (widget), widget_signals[MAP]); - gtk_widget_queue_draw (widget); + if (GTK_WIDGET_NO_WINDOW (widget)) + gtk_widget_queue_draw (widget); } } @@ -1598,7 +1599,8 @@ gtk_widget_unmap (GtkWidget *widget) if (GTK_WIDGET_MAPPED (widget)) { - gtk_widget_queue_clear_child (widget); + if (GTK_WIDGET_NO_WINDOW (widget)) + gtk_widget_queue_clear_child (widget); gtk_signal_emit (GTK_OBJECT (widget), widget_signals[UNMAP]); } } @@ -2380,7 +2382,6 @@ gtk_widget_size_allocate (GtkWidget *widget, else if (widget->allocation.width != real_allocation.width || widget->allocation.height != real_allocation.height) { - gtk_widget_queue_clear_child (widget); needs_draw = TRUE; } |