summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libnautilus-private/nautilus-desktop-icon-file.c7
-rw-r--r--libnautilus-private/nautilus-file.c14
-rw-r--r--libnautilus-private/nautilus-file.h4
-rw-r--r--src/nautilus-files-view.c4
-rw-r--r--src/nautilus-mime-actions.c10
-rw-r--r--src/nautilus-mime-actions.h1
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,