diff --git a/ChangeLog b/ChangeLog index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 792519b0eb..58d92d6bc0 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,16 @@ +Wed Jan 13 13:28:00 1999 Tim Janik + + * 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. + Tue Jan 12 22:50:44 PST 1999 Manish Singh * acinclude.m4 diff --git a/acconfig.h b/acconfig.h index b700db6ed9..01f219e9db 100644 --- a/acconfig.h +++ b/acconfig.h @@ -29,6 +29,8 @@ #undef HAVE_SYS_SELECT_H #undef HAVE_XCONVERTCASE +#undef WITH_SYMBOL_UNDERSCORE + #undef NO_FD_SET #undef RESOURCE_BASE diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 8015fecf41..0c53fa73fb 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -250,14 +250,17 @@ gtk_label_set_text (GtkLabel *label, g_return_if_fail (label != NULL); g_return_if_fail (GTK_IS_LABEL (label)); g_return_if_fail (str != NULL); - - /* Convert text to wide characters */ - len = strlen (str); - str_wc = g_new (GdkWChar, len + 1); - wc_len = gdk_mbstowcs (str_wc, str, len + 1); - str_wc[wc_len] = '\0'; - - gtk_label_set_text_internal (label, g_strdup (str), str_wc); + + if (!label->label || strcmp (label->label, str)) + { + /* Convert text to wide characters */ + len = strlen (str); + str_wc = g_new (GdkWChar, len + 1); + wc_len = gdk_mbstowcs (str_wc, str, len + 1); + str_wc[wc_len] = '\0'; + + gtk_label_set_text_internal (label, g_strdup (str), str_wc); + } } void 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; } diff --git a/stamp-h.in b/stamp-h.in index e69de29bb2..9788f70238 100644 --- a/stamp-h.in +++ b/stamp-h.in @@ -0,0 +1 @@ +timestamp