[nautilus/wip/csoriano/flow: 36/55] file: allow overriding dnd handling



commit f0b5575c94e8774293c34c9e9d26603a3afb5d94
Author: Carlos Soriano <csoriano gnome org>
Date:   Wed Mar 30 16:02:49 2016 +0200

    file: allow overriding dnd handling
    
    Subclasses may want to override some dnd handling.

 libnautilus-private/nautilus-file.c |    8 ++++++++
 libnautilus-private/nautilus-file.h |    2 ++
 2 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 8066799..55da59d 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -165,6 +165,7 @@ static const char * nautilus_file_peek_display_name (NautilusFile *file);
 static const char * nautilus_file_peek_display_name_collation_key (NautilusFile *file);
 static void file_mount_unmounted (GMount *mount,  gpointer data);
 static void metadata_hash_free (GHashTable *hash);
+static gboolean real_drag_can_accept_files (NautilusFile *drop_target_item);
 
 G_DEFINE_TYPE_WITH_CODE (NautilusFile, nautilus_file, G_TYPE_OBJECT,
                         G_IMPLEMENT_INTERFACE (NAUTILUS_TYPE_FILE_INFO,
@@ -8004,6 +8005,7 @@ nautilus_file_class_init (NautilusFileClass *class)
        class->can_rename = real_can_rename;
        class->rename = real_rename;
        class->get_target_uri = real_get_target_uri;
+       class->drag_can_accept_files = real_drag_can_accept_files;
 
        signals[CHANGED] =
                g_signal_new ("changed",
@@ -8127,6 +8129,12 @@ nautilus_file_info_providers_done (NautilusFile *file)
 static gboolean
 nautilus_drag_can_accept_files (NautilusFile *drop_target_item)
 {
+        return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (drop_target_item))->drag_can_accept_files 
(drop_target_item);
+}
+
+static gboolean
+real_drag_can_accept_files (NautilusFile *drop_target_item)
+{
        if (nautilus_file_is_directory (drop_target_item)) {
                NautilusDirectory *directory;
                gboolean res;
diff --git a/libnautilus-private/nautilus-file.h b/libnautilus-private/nautilus-file.h
index 447eb72..77b4fe1 100644
--- a/libnautilus-private/nautilus-file.h
+++ b/libnautilus-private/nautilus-file.h
@@ -599,6 +599,8 @@ typedef struct {
                                                           gpointer                        callback_data);
 
        char*                 (* get_target_uri)          (NautilusFile                   *file);
+
+       gboolean              (* drag_can_accept_files)   (NautilusFile                   *drop_target_item);
 } NautilusFileClass;
 
 #endif /* NAUTILUS_FILE_H */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]