summaryrefslogtreecommitdiff
path: root/gtk/gtkwidget.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>1999-01-13 12:39:17 +0000
committerTim Janik <timj@src.gnome.org>1999-01-13 12:39:17 +0000
commit55b365d76da826a4ade63291dc1357f6f15eb851 (patch)
tree68e6c5b1b68f262bb4c710ca0c08b278c3f799a3 /gtk/gtkwidget.c
parentde7ffb4a1cc6a6a56992e7b7c7c4b4769163ccfe (diff)
downloadgtk+-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.c7
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;
}