? autom4te.cache
? depcomp
? eog.desktop.in
? install-sh
? missing
? mkinstalldirs
? omf.make
? patch.txt
? stamp-h1
? xmldocs.make
? libeog/test-eog-job
? libeog/test-image-load
? po/.intltool-merge-cache
? po/stamp-it
Index: libeog/eog-full-screen.c
===================================================================
RCS file: /cvs/gnome/eog/libeog/eog-full-screen.c,v
retrieving revision 1.34
diff -u -r1.34 eog-full-screen.c
--- libeog/eog-full-screen.c	2 Mar 2006 19:14:51 -0000	1.34
+++ libeog/eog-full-screen.c	6 May 2006 20:33:46 -0000
@@ -692,6 +692,12 @@
 	EogImage *current_img;
 	EogImage *preload_img;
 
+	if (eog_job_get_status (job) == EOG_JOB_STATUS_CANCELED)
+	{	/* only if slideshow was cancelled: don't do anything,
+		   the object will be destroyed, with cache & all. */
+		return;
+	}
+
 	if (eog_job_get_success (job))
 		eog_image_cache_add (priv->cache, image);
 
@@ -882,4 +888,21 @@
 	image = eog_image_list_get_img_by_iter (priv->list, priv->current);
 
 	return image;
+}
+
+void
+eog_full_screen_prepare_destroy (EogFullScreen *fs)
+{
+	EogFullScreenPrivate *priv;
+	g_return_if_fail (EOG_IS_FULL_SCREEN (fs));
+
+	priv = fs->priv;
+
+	cancel_load_by_iter (priv->list, priv->preload);
+	
+	if (priv->preload != NULL)
+	{
+		g_free (priv->preload);
+		priv->preload = NULL;
+	}
 }
Index: libeog/eog-full-screen.h
===================================================================
RCS file: /cvs/gnome/eog/libeog/eog-full-screen.h,v
retrieving revision 1.7
diff -u -r1.7 eog-full-screen.h
--- libeog/eog-full-screen.h	30 Oct 2005 02:52:22 -0000	1.7
+++ libeog/eog-full-screen.h	6 May 2006 20:33:46 -0000
@@ -65,6 +65,9 @@
 
 EogImage*  eog_full_screen_get_last_image (EogFullScreen *fs);
 
+/* you must call this function before destroying the object! */
+void eog_full_screen_prepare_destroy (EogFullScreen *fs);
+
 G_END_DECLS
 
 #endif /* _EOG_FULL_SCREEN_H_ */
Index: shell/eog-window.c
===================================================================
RCS file: /cvs/gnome/eog/shell/eog-window.c,v
retrieving revision 1.189
diff -u -r1.189 eog-window.c
--- shell/eog-window.c	27 Mar 2006 01:29:14 -0000	1.189
+++ shell/eog-window.c	6 May 2006 20:33:54 -0000
@@ -742,6 +742,7 @@
 		g_object_unref (last_image);
 	}
 
+	eog_full_screen_prepare_destroy (fs);
 	gtk_widget_destroy (widget);
 }
 
