summaryrefslogtreecommitdiffstats
path: root/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch')
-rw-r--r--gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch85
1 files changed, 85 insertions, 0 deletions
diff --git a/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch b/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch
new file mode 100644
index 0000000000..f9686f834b
--- /dev/null
+++ b/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch
@@ -0,0 +1,85 @@
+# From https://git.gnome.org/browse/nautilus/commit/?id=8b4a83ea80bf657cd8be754786e5f9daf7d5cc52
+
+From 8b4a83ea80bf657cd8be754786e5f9daf7d5cc52 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc@gnome.org>
+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 <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+ #include <glib/gi18n.h>
++#define GNOME_DESKTOP_USE_UNSTABLE_API
++#include <libgnome-desktop/gnome-bg.h>
++#include <gdesktop-enums.h>
+
+-#include <libnautilus-private/nautilus-desktop-background.h>
+ #include <libnautilus-private/nautilus-file-utilities.h>
+ #include <libnautilus-private/nautilus-file-changes-queue.h>
+ #include <stdio.h>
+@@ -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