Filed as part of [1], proposed patch attached. Another solution would have been to make the alternate activation callbacks pass NAUTILUS_WINDOW_OPEN_IN_NAVIGATION as mode, but it would IMHO have been slighly confusing. [1] http://ubuntuforums.org/showthread.php?t=75886 -- Christian Neumair <chris gnome-de org>
Index: libnautilus-private/nautilus-window-info.h
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-window-info.h,v
retrieving revision 1.4
diff -u -p -r1.4 nautilus-window-info.h
--- libnautilus-private/nautilus-window-info.h 1 Jul 2005 14:13:08 -0000 1.4
+++ libnautilus-private/nautilus-window-info.h 15 Oct 2005 20:34:35 -0000
@@ -47,7 +47,10 @@ typedef enum {
} NautilusWindowOpenMode;
typedef enum {
- NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND = 1<<0
+ /* used in spatial mode */
+ NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND = 1<<0,
+ /* used in navigation mode */
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW = 1<<1
} NautilusWindowOpenFlags;
typedef enum {
Index: src/nautilus-window-manage-views.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window-manage-views.c,v
retrieving revision 1.354
diff -u -p -r1.354 nautilus-window-manage-views.c
--- src/nautilus-window-manage-views.c 9 Jul 2005 20:09:28 -0000 1.354
+++ src/nautilus-window-manage-views.c 15 Oct 2005 20:34:37 -0000
@@ -458,6 +458,11 @@ nautilus_window_open_location_full (Naut
} else {
NAUTILUS_SPATIAL_WINDOW (window)->affect_spatial_window_on_next_location_change = FALSE;
}
+ } else if ((flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW) != 0) {
+ target_window = nautilus_application_create_navigation_window
+ (window->application,
+ NULL,
+ gtk_window_get_screen (GTK_WINDOW (window)));
}
} else if (NAUTILUS_IS_SPATIAL_WINDOW (window)) {
if (!NAUTILUS_SPATIAL_WINDOW (window)->affect_spatial_window_on_next_location_change) {
@@ -473,7 +478,12 @@ nautilus_window_open_location_full (Naut
NAUTILUS_SPATIAL_WINDOW (window)->affect_spatial_window_on_next_location_change = FALSE;
target_window = window;
}
- } else {
+ } else if (flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW) {
+ target_window = nautilus_application_create_navigation_window
+ (window->application,
+ NULL,
+ gtk_window_get_screen (GTK_WINDOW (window)));
+ } else {
target_window = window;
}
break;
Index: src/file-manager/fm-icon-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-icon-view.c,v
retrieving revision 1.315
diff -u -p -r1.315 fm-icon-view.c
--- src/file-manager/fm-icon-view.c 19 Sep 2005 09:59:50 -0000 1.315
+++ src/file-manager/fm-icon-view.c 15 Oct 2005 20:34:37 -0000
@@ -1667,7 +1667,8 @@ icon_container_activate_alternate_callba
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (icon_view),
file_list,
NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
- NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND);
+ NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND |
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW);
}
static void
Index: src/file-manager/fm-list-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-list-view.c,v
retrieving revision 1.258
diff -u -p -r1.258 fm-list-view.c
--- src/file-manager/fm-list-view.c 19 Sep 2005 11:57:42 -0000 1.258
+++ src/file-manager/fm-list-view.c 15 Oct 2005 20:34:38 -0000
@@ -235,7 +235,8 @@ activate_selected_items_alternate (FMLis
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (view),
file_list,
NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
- NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND);
+ NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND |
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW);
nautilus_file_list_free (file_list);
}
Attachment:
signature.asc
Description: This is a digitally signed message part