summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2016-03-30 14:41:42 +0200
committerCarlos Soriano <csoriano@gnome.org>2016-04-05 15:13:51 +0200
commit2eb201492b54bca590d706a8ffa7709385ab7479 (patch)
treeba75ef18868b61df04ff4e0c1c58a72f1aaf64e6
parent6d05138a4c134a75e5db7a0b10c141042514761d (diff)
downloadnautilus-2eb201492b54bca590d706a8ffa7709385ab7479.tar.gz
file: allow overriding of get_drop_target_uri
So subclasses like desktop icon can make its own handling, instead of special casing in the parent.
-rw-r--r--libnautilus-private/nautilus-file.c7
-rw-r--r--libnautilus-private/nautilus-file.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 7ef00f78e..4fc0a4dec 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -3849,6 +3849,12 @@ nautilus_file_get_activation_location (NautilusFile *file)
char *
nautilus_file_get_drop_target_uri (NautilusFile *file)
{
+ return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->get_drop_target_uri (file);
+}
+
+static char *
+real_get_drop_target_uri (NautilusFile *file)
+{
char *uri, *target_uri;
GFile *location;
NautilusDesktopLink *link;
@@ -8012,6 +8018,7 @@ nautilus_file_class_init (NautilusFileClass *class)
class->set_metadata_as_list = real_set_metadata_as_list;
class->can_rename = real_can_rename;
class->rename = real_rename;
+ class->get_drop_target_uri = real_get_drop_target_uri;
signals[CHANGED] =
g_signal_new ("changed",
diff --git a/libnautilus-private/nautilus-file.h b/libnautilus-private/nautilus-file.h
index 790d67b6b..e7ed6b995 100644
--- a/libnautilus-private/nautilus-file.h
+++ b/libnautilus-private/nautilus-file.h
@@ -567,6 +567,8 @@ typedef struct {
const char *new_name,
NautilusFileOperationCallback callback,
gpointer callback_data);
+
+ char* (* get_drop_target_uri) (NautilusFile *file);
} NautilusFileClass;
#endif /* NAUTILUS_FILE_H */