static gboolean nautilus_drag_can_accept_files (NautilusFile *drop_target_item) { NautilusDirectory *directory; if (nautilus_file_is_directory (drop_target_item)) { gboolean res; /* target is a directory, accept if editable */ directory = nautilus_directory_get_for_file (drop_target_item); res = nautilus_directory_is_editable (directory); nautilus_directory_unref (directory); return res; } if (NAUTILUS_IS_DESKTOP_ICON_FILE (drop_target_item)) { return TRUE; } /* Launchers are an acceptable drop target */ if (nautilus_file_is_launcher (drop_target_item)) { return TRUE; } if (nautilus_is_file_roller_installed () && nautilus_file_is_archive (drop_target_item)) { return TRUE; } return FALSE; }
static gboolean nautilus_drag_can_accept_files (NautilusFile *drop_target_item) { NautilusDirectory *directory; if (nautilus_file_is_directory (drop_target_item)) { gboolean res; /* target is a directory, accept if editable */ directory = nautilus_directory_get_for_file (drop_target_item); res = nautilus_directory_is_editable (directory); nautilus_directory_unref (directory); return res; } if (NAUTILUS_IS_DESKTOP_ICON_FILE (drop_target_item)) { return TRUE; } /* All Nautilus links are assumed to be links to directories. * Therefore, they all can accept drags, like all other * directories to. As with other directories, there can be * errors when the actual copy is attempted due to * permissions. */ if (nautilus_file_is_nautilus_link (drop_target_item)) { return TRUE; } if (nautilus_is_file_roller_installed () && nautilus_file_is_archive (drop_target_item)) { return TRUE; } return FALSE; }