diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-09-27 19:54:51 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-09-27 19:54:51 +0000 |
commit | 4816a141d8c71e837d1db39288b3909ab8b27767 (patch) | |
tree | 692bf01e8dfbc54033b471d4e7a6852a7ffc4e50 /gtk | |
parent | 335c622faf13fa209457a92e60977b018891b05a (diff) | |
download | gtk+-4816a141d8c71e837d1db39288b3909ab8b27767.tar.gz |
Reset the animation iter on unrealize as well as unmap. (#94336)
Fri Sep 27 15:27:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimage.c (gtk_image_unrealize): Reset the
animation iter on unrealize as well as unmap.
(#94336)
* gtk/gtkprogressbar.c (gtk_progress_bar_set_text): Don't
turn a value of "" into NULL. (#94157, Vitaly Tishkov)
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkimage.c | 23 | ||||
-rw-r--r-- | gtk/gtkprogressbar.c | 14 |
2 files changed, 21 insertions, 16 deletions
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index 967fd29df5..3ca712b65a 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -39,6 +39,7 @@ static void gtk_image_init (GtkImage *image); static gint gtk_image_expose (GtkWidget *widget, GdkEventExpose *event); static void gtk_image_unmap (GtkWidget *widget); +static void gtk_image_unrealize (GtkWidget *widget); static void gtk_image_size_request (GtkWidget *widget, GtkRequisition *requisition); static void gtk_image_destroy (GtkObject *object); @@ -122,6 +123,7 @@ gtk_image_class_init (GtkImageClass *class) widget_class->expose_event = gtk_image_expose; widget_class->size_request = gtk_image_size_request; widget_class->unmap = gtk_image_unmap; + widget_class->unrealize = gtk_image_unrealize; g_object_class_install_property (gobject_class, PROP_PIXBUF, @@ -1136,12 +1138,8 @@ gtk_image_get (GtkImage *image, } static void -gtk_image_unmap (GtkWidget *widget) +gtk_image_reset_anim_iter (GtkImage *image) { - GtkImage *image; - - image = GTK_IMAGE (widget); - if (image->storage_type == GTK_IMAGE_ANIMATION) { /* Reset the animation */ @@ -1158,11 +1156,26 @@ gtk_image_unmap (GtkWidget *widget) image->data.anim.iter = NULL; } } +} + +static void +gtk_image_unmap (GtkWidget *widget) +{ + gtk_image_reset_anim_iter (GTK_IMAGE (widget)); if (GTK_WIDGET_CLASS (parent_class)->unmap) GTK_WIDGET_CLASS (parent_class)->unmap (widget); } +static void +gtk_image_unrealize (GtkWidget *widget) +{ + gtk_image_reset_anim_iter (GTK_IMAGE (widget)); + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + GTK_WIDGET_CLASS (parent_class)->unrealize (widget); +} + static gint animation_timeout (gpointer data) { diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c index e5ac4eeb31..4d5f80d79e 100644 --- a/gtk/gtkprogressbar.c +++ b/gtk/gtkprogressbar.c @@ -910,17 +910,9 @@ gtk_progress_bar_set_text (GtkProgressBar *pbar, { g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); - if (text && *text) - { - gtk_progress_set_show_text (GTK_PROGRESS (pbar), TRUE); - gtk_progress_set_format_string (GTK_PROGRESS (pbar), text); - } - else - { - gtk_progress_set_show_text (GTK_PROGRESS (pbar), FALSE); - gtk_progress_set_format_string (GTK_PROGRESS (pbar), NULL); - } - + gtk_progress_set_show_text (GTK_PROGRESS (pbar), text && *text); + gtk_progress_set_format_string (GTK_PROGRESS (pbar), text); + /* We don't support formats in this interface */ GTK_PROGRESS (pbar)->use_text_format = FALSE; |