# From https://git.gnome.org/browse/nautilus/commit/?id=8b4a83ea80bf657cd8be754786e5f9daf7d5cc52 From 8b4a83ea80bf657cd8be754786e5f9daf7d5cc52 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Tue, 19 Feb 2013 16:28:52 +0000 Subject: canvas-dnd: don't use NautilusDesktopBackground We only use it for DnD when receiving an image drop. We can copy that code from NautilusDesktopBackground in a helper function. --- diff --git a/libnautilus-private/nautilus-canvas-dnd.c b/libnautilus-private/nautilus-canvas-dnd.c index 2d1ae24..4be79bd 100644 --- a/libnautilus-private/nautilus-canvas-dnd.c +++ b/libnautilus-private/nautilus-canvas-dnd.c @@ -37,6 +37,7 @@ #include "nautilus-file-dnd.h" #include "nautilus-canvas-private.h" +#include "nautilus-global-preferences.h" #include "nautilus-link.h" #include "nautilus-metadata.h" #include "nautilus-selection-canvas-item.h" @@ -51,8 +52,10 @@ #include #include #include +#define GNOME_DESKTOP_USE_UNSTABLE_API +#include +#include -#include #include #include #include @@ -1040,6 +1043,31 @@ selection_is_image_file (GList *selection_list) return result; } +static void +receive_dropped_background_image (const gchar *image_uri) +{ + GnomeBG *bg; + char *filename; + + if (image_uri != NULL) { + filename = g_filename_from_uri (image_uri, NULL, NULL); + } else { + filename = NULL; + } + + bg = gnome_bg_new (); + + /* Currently, we only support tiled images. So we set the placement. + */ + gnome_bg_set_placement (bg, G_DESKTOP_BACKGROUND_STYLE_WALLPAPER); + gnome_bg_set_filename (bg, filename); + gnome_bg_set_draw_background (bg, TRUE); + + gnome_bg_save_to_preferences (bg, gnome_background_preferences); + + g_free (filename); + g_object_unref (bg); +} static void nautilus_canvas_container_receive_dropped_icons (NautilusCanvasContainer *container, @@ -1083,15 +1111,8 @@ nautilus_canvas_container_receive_dropped_icons (NautilusCanvasContainer *contai } if (real_action == (GdkDragAction) NAUTILUS_DND_ACTION_SET_AS_BACKGROUND) { - NautilusDesktopBackground *background; - - background = nautilus_desktop_background_new (container); selected_item = container->details->dnd_info->drag_info.selection_list->data; - - nautilus_desktop_background_receive_dropped_background_image (background, - selected_item->uri); - - g_object_unref (background); + receive_dropped_background_image (selected_item->uri); return; } -- cgit v0.9.2 .