Reported as bug 331605 [1], proposed patch attached. [1] http://bugzilla.gnome.org/show_bug.cgi?id=331605 -- Christian Neumair <chris gnome-de org>
Index: src/nautilus-application.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-application.c,v
retrieving revision 1.238
diff -u -p -r1.238 nautilus-application.c
--- src/nautilus-application.c 9 Dec 2005 14:35:32 -0000 1.238
+++ src/nautilus-application.c 18 Feb 2006 08:41:24 -0000
@@ -154,6 +154,12 @@ nautilus_application_get_spatial_window_
return nautilus_application_spatial_window_list;
}
+unsigned int
+nautilus_application_get_n_windows (void)
+{
+ return g_list_length (nautilus_application_window_list) +
+ g_list_length (nautilus_application_desktop_windows);
+}
static void
nautilus_application_instance_init (NautilusApplication *application)
Index: src/nautilus-application.h
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-application.h,v
retrieving revision 1.39
diff -u -p -r1.39 nautilus-application.h
--- src/nautilus-application.h 14 Feb 2005 10:59:23 -0000 1.39
+++ src/nautilus-application.h 18 Feb 2006 08:41:24 -0000
@@ -72,6 +72,7 @@ void nautilus_applicatio
const char *urls[]);
GList * nautilus_application_get_window_list (void);
GList * nautilus_application_get_spatial_window_list (void);
+unsigned int nautilus_application_get_n_windows (void);
NautilusWindow * nautilus_application_present_spatial_window (NautilusApplication *application,
NautilusWindow *requesting_window,
Index: src/nautilus-window-manage-views.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window-manage-views.c,v
retrieving revision 1.361
diff -u -p -r1.361 nautilus-window-manage-views.c
--- src/nautilus-window-manage-views.c 20 Dec 2005 10:00:59 -0000 1.361
+++ src/nautilus-window-manage-views.c 18 Feb 2006 08:41:25 -0000
@@ -668,14 +668,6 @@ another_navigation_window_already_showin
return FALSE;
}
-/* utility routine that returns true if there's one or fewer windows in the window list */
-static gboolean
-just_one_window (void)
-{
- return !eel_g_list_more_than_one_item
- (nautilus_application_get_window_list ());
-}
-
/*
* begin_location_change
@@ -925,7 +917,9 @@ got_file_info_for_view_selection_callbac
* happens when a new window cannot display its initial URI.
*/
/* if this is the only window, we don't want to quit, so we redirect it to home */
- if (just_one_window ()) {
+ if (nautilus_application_get_n_windows () <= 1) {
+ g_assert (nautilus_application_get_n_windows () == 1);
+
/* Make sure we re-use this window */
if (NAUTILUS_IS_SPATIAL_WINDOW (window)) {
NAUTILUS_SPATIAL_WINDOW (window)->affect_spatial_window_on_next_location_change = TRUE;
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil