diff -Naur ristretto-0.0.20/src/main_window.c ristretto-0.0.20.tpg/src/main_window.c --- ristretto-0.0.20/src/main_window.c 2008-05-24 13:03:46.000000000 +0000 +++ ristretto-0.0.20.tpg/src/main_window.c 2008-11-08 15:02:11.000000000 +0000 @@ -443,7 +443,6 @@ g_snprintf(selection_name, 100, XFDESKTOP_SELECTION_FMT, xscreen); - Window root_window = GDK_ROOT_WINDOW(); Atom xfce_desktop_atom = XInternAtom (gdk_display, "XFCE_DESKTOP_WINDOW", False); Atom xfce_selection_atom = XInternAtom (gdk_display, selection_name, False); XGetWindowProperty (gdk_display, @@ -1219,6 +1218,7 @@ } g_free(image_path_prop); g_free(image_show_prop); + g_free(image_style_prop); g_object_unref(xfdesktop_channel); } break; diff -Naur ristretto-0.0.20/src/navigator.c ristretto-0.0.20.tpg/src/navigator.c --- ristretto-0.0.20/src/navigator.c 2008-05-06 21:12:22.000000000 +0000 +++ ristretto-0.0.20.tpg/src/navigator.c 2008-11-08 15:02:11.000000000 +0000 @@ -1023,6 +1023,11 @@ } if ((entry->loader == NULL) && ((empty_cache == TRUE ) || entry->src_pixbuf == NULL)) { + if (entry->src_pixbuf) + { + gdk_pixbuf_unref(entry->src_pixbuf); + entry->src_pixbuf = NULL; + } entry->loader = gdk_pixbuf_loader_new(); g_signal_connect(entry->loader, "area-prepared", G_CALLBACK(cb_rstto_navigator_entry_area_prepared), entry); @@ -1138,14 +1143,14 @@ static void cb_rstto_navigator_entry_closed (GdkPixbufLoader *loader, RsttoNavigatorEntry *entry) { + GdkPixbuf *pixbuf = NULL; + if (entry->src_pixbuf) { gdk_pixbuf_unref(entry->src_pixbuf); entry->src_pixbuf = NULL; } - GdkPixbuf *pixbuf = NULL; - if (entry->iter) { pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(entry->iter); @@ -1168,11 +1173,14 @@ if (pixbuf != NULL) { entry->src_pixbuf = gdk_pixbuf_rotate_simple(pixbuf, rstto_navigator_entry_get_rotation(entry)); + gdk_pixbuf_unref(pixbuf); + pixbuf = NULL; if (rstto_navigator_entry_get_flip(entry, FALSE)) { pixbuf = entry->src_pixbuf; entry->src_pixbuf = gdk_pixbuf_flip(pixbuf, FALSE); gdk_pixbuf_unref(pixbuf); + pixbuf = NULL; } if (rstto_navigator_entry_get_flip(entry, TRUE)) @@ -1180,6 +1188,7 @@ pixbuf = entry->src_pixbuf; entry->src_pixbuf = gdk_pixbuf_flip(pixbuf, TRUE); gdk_pixbuf_unref(pixbuf); + pixbuf = NULL; } g_signal_emit(G_OBJECT(entry->navigator), rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_ENTRY_MODIFIED], 0, entry, NULL); }