Commit 8ccdd5b7 authored by Matthias Clasen's avatar Matthias Clasen

gtk-demo: Fix images demo

The incremental loading was broken by GtkIconHelper - queuing a
redraw is no longer sufficient to cause GtkImage to redraw with
the new pixbuf contents.
Pointed out by Jasper St. Pierre.
parent 9268ef36
......@@ -50,18 +50,21 @@ progressive_updated_callback (GdkPixbufLoader *loader,
gpointer data)
GtkWidget *image;
GdkPixbuf *pixbuf;
image = GTK_WIDGET (data);
/* We know the pixbuf inside the GtkImage has changed, but the image
* itself doesn't know this; so queue a redraw. If we wanted to be
* really efficient, we could use a drawing area or something
* instead of a GtkImage, so we could control the exact position of
* the pixbuf on the display, then we could queue a draw for only
* the updated area of the image.
* itself doesn't know this; so give it a hint by setting the pixbuf
* again. Queuing a redraw used to be sufficient, but nowadays GtkImage
* uses GtkIconHelper which caches the pixbuf state and will just redraw
* from the cache.
gtk_widget_queue_draw (image);
pixbuf = gtk_image_get_pixbuf (GTK_IMAGE (image));
g_object_ref (pixbuf);
gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf);
g_object_unref (pixbuf);
static gint
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment