[Goodies-commits] r3374 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Sun Oct 14 01:27:28 CEST 2007
Author: stephan
Date: 2007-10-13 23:27:28 +0000 (Sat, 13 Oct 2007)
New Revision: 3374
Modified:
ristretto/trunk/src/picture_viewer.c
Log:
Improve memory usage for static images
(needs some cleaning up though)
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-10-13 23:12:10 UTC (rev 3373)
+++ ristretto/trunk/src/picture_viewer.c 2007-10-13 23:27:28 UTC (rev 3374)
@@ -853,11 +853,6 @@
gint time = gdk_pixbuf_animation_iter_get_delay_time(viewer->priv->iter);
- if (viewer->priv->src_pixbuf)
- {
- gdk_pixbuf_ref(viewer->priv->src_pixbuf);
- }
-
rstto_picture_viewer_refresh(viewer);
rstto_picture_viewer_paint(GTK_WIDGET(viewer));
@@ -866,12 +861,16 @@
/* update frame */
viewer->priv->timeout_id = g_timeout_add(time, (GSourceFunc)cb_rstto_picture_viewer_update_image, viewer);
}
+ else
+ {
+ viewer->priv->iter = NULL;
+ }
}
static void
cb_rstto_picture_viewer_area_updated(GdkPixbufLoader *loader, gint x, gint y, gint width, gint height, RsttoPictureViewer *viewer)
{
- if (1)
+ if (viewer->priv->iter)
{
/* Current Frame being updated?! */
if (gdk_pixbuf_animation_iter_on_currently_loading_frame(viewer->priv->iter) == TRUE)
@@ -909,10 +908,18 @@
if (viewer->priv->iter)
{
viewer->priv->src_pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(viewer->priv->iter);
+ viewer->priv->src_pixbuf = gdk_pixbuf_copy(viewer->priv->src_pixbuf);
}
- if (viewer->priv->src_pixbuf)
+ else
{
- viewer->priv->src_pixbuf = gdk_pixbuf_copy(viewer->priv->src_pixbuf);
+ if (viewer->priv->loader)
+ {
+ viewer->priv->src_pixbuf = gdk_pixbuf_loader_get_pixbuf(viewer->priv->loader);
+ if (viewer->priv->src_pixbuf)
+ {
+ gdk_pixbuf_ref(viewer->priv->src_pixbuf);
+ }
+ }
}
rstto_picture_viewer_refresh(viewer);
More information about the Goodies-commits
mailing list