diff --git a/src/xfce-backdrop.c b/src/xfce-backdrop.c index f8bdc2b5..53705af2 100644 --- a/src/xfce-backdrop.c +++ b/src/xfce-backdrop.c @@ -1598,8 +1598,10 @@ xfce_backdrop_image_data_release(XfceBackdropImageData *image_data) if(image_data->image_buffer) g_free(image_data->image_buffer); - if(image_data->loader) + if(image_data->loader) { + g_print ("UNREF LOADER\n"); g_object_unref(image_data->loader); + } } /** @@ -1711,13 +1713,14 @@ xfce_backdrop_loader_size_prepared_cb(GdkPixbufLoader *loader, return; } - /* invalid backdrop? quit */ + /* invalid backdrop? quit but don't free image data */ if(!XFCE_IS_BACKDROP(backdrop)) { - xfce_backdrop_image_data_release(image_data); - g_free(image_data); + g_print ("INVALID BACKDROP!\n"); return; } + g_print ("VALID BACKDROP!\n"); + if(backdrop->priv->image_style == XFCE_BACKDROP_IMAGE_INVALID) { g_warning("Invalid image style, setting to XFCE_BACKDROP_IMAGE_ZOOMED"); backdrop->priv->image_style = XFCE_BACKDROP_IMAGE_ZOOMED; @@ -1785,9 +1788,11 @@ xfce_backdrop_loader_closed_cb(GdkPixbufLoader *loader, TRACE("entering"); - g_return_if_fail(XFCE_IS_BACKDROP(backdrop)); + /* invalid backdrop? just quit */ + if(!XFCE_IS_BACKDROP(backdrop)) + return; - /* canceled? quit now */ + /* canceled? free data and quit now */ if(g_cancellable_is_cancelled(image_data->cancellable)) { xfce_backdrop_image_data_release(image_data); g_free(image_data);