diff options
-rw-r--r-- | libnautilus-private/nautilus-desktop-icon-file.c | 7 | ||||
-rw-r--r-- | libnautilus-private/nautilus-file.c | 14 | ||||
-rw-r--r-- | libnautilus-private/nautilus-file.h | 4 | ||||
-rw-r--r-- | src/nautilus-files-view.c | 4 | ||||
-rw-r--r-- | src/nautilus-mime-actions.c | 10 | ||||
-rw-r--r-- | src/nautilus-mime-actions.h | 1 |
6 files changed, 28 insertions, 12 deletions
diff --git a/libnautilus-private/nautilus-desktop-icon-file.c b/libnautilus-private/nautilus-desktop-icon-file.c index 2dc10b8f5..48b06d18a 100644 --- a/libnautilus-private/nautilus-desktop-icon-file.c +++ b/libnautilus-private/nautilus-desktop-icon-file.c @@ -462,6 +462,12 @@ real_invalidate_attributes_internal (NautilusFile *file) return; } +static gboolean +real_opens_in_view (NautilusFile *file) +{ + return TRUE; +} + static void nautilus_desktop_icon_file_set_metadata (NautilusFile *file, const char *key, @@ -507,6 +513,7 @@ nautilus_desktop_icon_file_class_init (NautilusDesktopIconFileClass *klass) file_class->get_target_uri = real_get_target_uri; file_class->drag_can_accept_files = real_drag_can_accept_files; file_class->invalidate_attributes_internal = real_invalidate_attributes_internal; + file_class->opens_in_view = real_opens_in_view; g_type_class_add_private (object_class, sizeof(NautilusDesktopIconFileDetails)); } diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c index 2baf939ed..51cc87ccc 100644 --- a/libnautilus-private/nautilus-file.c +++ b/libnautilus-private/nautilus-file.c @@ -1612,6 +1612,19 @@ nautilus_file_get_uri_scheme (NautilusFile *file) return scheme; } + +gboolean +nautilus_file_opens_in_view (NautilusFile *file) +{ + return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->opens_in_view (file); +} + +static gboolean +real_opens_in_view (NautilusFile *file) +{ + return nautilus_file_is_directory (file); +} + NautilusFileOperation * nautilus_file_operation_new (NautilusFile *file, NautilusFileOperationCallback callback, @@ -8005,6 +8018,7 @@ nautilus_file_class_init (NautilusFileClass *class) class->get_target_uri = real_get_target_uri; class->drag_can_accept_files = real_drag_can_accept_files; class->invalidate_attributes_internal = real_invalidate_attributes_internal; + class->opens_in_view = real_opens_in_view; signals[CHANGED] = g_signal_new ("changed", diff --git a/libnautilus-private/nautilus-file.h b/libnautilus-private/nautilus-file.h index a6e265bf0..ca97c7506 100644 --- a/libnautilus-private/nautilus-file.h +++ b/libnautilus-private/nautilus-file.h @@ -456,6 +456,8 @@ GdkPixbuf * nautilus_file_get_icon_pixbuf (Nautilu int scale, NautilusFileIconFlags flags); +/* Whether the file should open inside a view */ +gboolean nautilus_file_opens_in_view (NautilusFile *file); /* Thumbnailing handling */ gboolean nautilus_file_is_thumbnailing (NautilusFile *file); @@ -604,6 +606,8 @@ typedef struct { void (* invalidate_attributes_internal) (NautilusFile *file, NautilusFileAttributes file_attributes); + + gboolean (* opens_in_view) (NautilusFile *file); } NautilusFileClass; #endif /* NAUTILUS_FILE_H */ diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index 4eb136e14..37ca728ea 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -6299,7 +6299,7 @@ real_update_actions_state (NautilusFilesView *view) file = NAUTILUS_FILE (selection->data); - if (!nautilus_mime_file_opens_in_view (file)) { + if (!nautilus_file_opens_in_view (file)) { item_opens_in_view = FALSE; } @@ -6586,7 +6586,7 @@ update_selection_menu (NautilusFilesView *view) show_run = FALSE; } - if (!nautilus_mime_file_opens_in_view (file)) { + if (!nautilus_file_opens_in_view (file)) { item_opens_in_view = FALSE; } diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c index a0b25e7ac..b132544dc 100644 --- a/src/nautilus-mime-actions.c +++ b/src/nautilus-mime-actions.c @@ -41,7 +41,6 @@ #include <libnautilus-private/nautilus-file-operations.h> #include <libnautilus-private/nautilus-metadata.h> #include <libnautilus-private/nautilus-program-choosing.h> -#include <libnautilus-private/nautilus-desktop-icon-file.h> #include <libnautilus-private/nautilus-global-preferences.h> #include <libnautilus-private/nautilus-signaller.h> @@ -672,13 +671,6 @@ get_default_executable_text_file_action (void) } } -gboolean -nautilus_mime_file_opens_in_view (NautilusFile *file) -{ - return (nautilus_file_is_directory (file) || - NAUTILUS_IS_DESKTOP_ICON_FILE (file)); -} - static ActivationAction get_activation_action (NautilusFile *file) { @@ -710,7 +702,7 @@ get_activation_action (NautilusFile *file) } if (action == ACTIVATION_ACTION_DO_NOTHING) { - if (nautilus_mime_file_opens_in_view (file)) { + if (nautilus_file_opens_in_view (file)) { action = ACTIVATION_ACTION_OPEN_IN_VIEW; } else { action = ACTIVATION_ACTION_OPEN_IN_APPLICATION; diff --git a/src/nautilus-mime-actions.h b/src/nautilus-mime-actions.h index 72c782a26..0349c21c0 100644 --- a/src/nautilus-mime-actions.h +++ b/src/nautilus-mime-actions.h @@ -37,7 +37,6 @@ GList * nautilus_mime_get_applications_for_file (Nauti GAppInfo * nautilus_mime_get_default_application_for_files (GList *files); -gboolean nautilus_mime_file_opens_in_view (NautilusFile *file); gboolean nautilus_mime_file_opens_in_external_app (NautilusFile *file); gboolean nautilus_mime_file_launches (NautilusFile *file); void nautilus_mime_activate_files (GtkWindow *parent_window, |