Index: libnautilus-private/nautilus-window-info.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-window-info.c,v
retrieving revision 1.2
diff -u -p -r1.2 nautilus-window-info.c
--- libnautilus-private/nautilus-window-info.c	22 Nov 2004 15:24:36 -0000	1.2
+++ libnautilus-private/nautilus-window-info.c	18 Mar 2005 23:28:15 -0000
@@ -168,6 +168,14 @@ nautilus_window_info_open_location (Naut
 }
 
 void
+nautilus_window_info_show_window (NautilusWindowInfo      *window)
+{
+	g_return_if_fail (NAUTILUS_IS_WINDOW_INFO (window));
+
+	(* NAUTILUS_WINDOW_INFO_GET_IFACE (window)->show_window) (window);
+}
+
+void
 nautilus_window_info_close (NautilusWindowInfo      *window)
 {
 	g_return_if_fail (NAUTILUS_IS_WINDOW_INFO (window));
Index: libnautilus-private/nautilus-window-info.h
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-window-info.h,v
retrieving revision 1.2
diff -u -p -r1.2 nautilus-window-info.h
--- libnautilus-private/nautilus-window-info.h	22 Nov 2004 15:24:36 -0000	1.2
+++ libnautilus-private/nautilus-window-info.h	18 Mar 2005 23:28:15 -0000
@@ -127,6 +127,7 @@ struct _NautilusWindowInfoIface 
 				       NautilusWindowOpenMode mode,
 				       NautilusWindowOpenFlags flags,
 				       GList *selection);
+	void   (* show_window)        (NautilusWindowInfo *window);
 	void   (* close_window)       (NautilusWindowInfo *window);
 	GtkUIManager *     (* get_ui_manager)   (NautilusWindowInfo *window);
 };
@@ -144,6 +145,7 @@ void                              nautil
 										 NautilusWindowOpenMode             mode,
 										 NautilusWindowOpenFlags            flags,
 										 GList                             *selection);
+void                              nautilus_window_info_show_window              (NautilusWindowInfo                *window);
 void                              nautilus_window_info_close                    (NautilusWindowInfo                *window);
 void                              nautilus_window_info_set_status               (NautilusWindowInfo                *window,
 										 const char                        *status);
Index: src/nautilus-window-manage-views.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window-manage-views.c,v
retrieving revision 1.347
diff -u -p -r1.347 nautilus-window-manage-views.c
--- src/nautilus-window-manage-views.c	14 Feb 2005 10:59:23 -0000	1.347
+++ src/nautilus-window-manage-views.c	18 Mar 2005 23:28:15 -0000
@@ -1106,11 +1106,6 @@ location_has_really_changed (NautilusWin
 
         free_location_change (window);
 
-        nautilus_window_update_title (window);
-	nautilus_window_update_icon (window);
-
-	gtk_widget_show (GTK_WIDGET (window));
-
 	if (location_copy != NULL) {
 		g_signal_emit_by_name (window, "loading_uri",
 				       location_copy);
Index: src/nautilus-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window.c,v
retrieving revision 1.443
diff -u -p -r1.443 nautilus-window.c
--- src/nautilus-window.c	22 Feb 2005 08:46:38 -0000	1.443
+++ src/nautilus-window.c	18 Mar 2005 23:28:16 -0000
@@ -559,6 +559,26 @@ nautilus_window_finalize (GObject *objec
 }
 
 void
+nautilus_window_show_window (NautilusWindow *window)
+{
+	g_return_if_fail (NAUTILUS_IS_WINDOW (window));
+
+	EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window,
+			 show_window, (window));
+
+	nautilus_window_update_title (window);
+	nautilus_window_update_icon (window);
+
+	gtk_widget_show (GTK_WIDGET (window));
+
+	if (window->details->viewed_file) {
+		if (NAUTILUS_IS_SPATIAL_WINDOW (window)) {
+			nautilus_file_set_has_open_window (window->details->viewed_file, TRUE);
+		}
+	}
+}
+
+void
 nautilus_window_close (NautilusWindow *window)
 {
 	g_return_if_fail (NAUTILUS_IS_WINDOW (window));
@@ -1186,9 +1206,6 @@ nautilus_window_set_viewed_file (Nautilu
 	}
 
 	if (file != NULL) {
-		if (NAUTILUS_IS_SPATIAL_WINDOW (window)) {
-			nautilus_file_set_has_open_window (file, TRUE);
-		}
 		attributes = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME | NAUTILUS_FILE_ATTRIBUTE_SLOW_MIME_TYPE;
 		nautilus_file_monitor_add (file, window, attributes);
 	}
@@ -1407,6 +1424,7 @@ nautilus_window_info_iface_init (Nautilu
 	iface->report_selection_changed = nautilus_window_report_selection_changed;
 	iface->report_view_failed = nautilus_window_report_view_failed;
 	iface->open_location = nautilus_window_open_location_full;
+	iface->show_window = nautilus_window_show_window;
 	iface->close_window = nautilus_window_close;
 	iface->set_status = nautilus_window_set_status;
 	iface->get_window_type = nautilus_window_get_window_type;
Index: src/nautilus-window.h
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window.h,v
retrieving revision 1.117
diff -u -p -r1.117 nautilus-window.h
--- src/nautilus-window.h	22 Nov 2004 15:24:37 -0000	1.117
+++ src/nautilus-window.h	18 Mar 2005 23:28:16 -0000
@@ -74,6 +74,7 @@ typedef struct {
                                         gboolean active);
         void   (* prompt_for_location) (NautilusWindow *window);
         void   (* get_default_size) (NautilusWindow *window, guint *default_width, guint *default_height);
+        void   (* show_window)  (NautilusWindow *window);
         void   (* close) (NautilusWindow *window);
 
         /* Signals used only for keybindings */
@@ -110,6 +111,7 @@ struct NautilusWindow {
 };
 
 GType            nautilus_window_get_type             (void);
+void             nautilus_window_show_window          (NautilusWindow    *window);
 void             nautilus_window_close                (NautilusWindow    *window);
 char *           nautilus_window_get_location         (NautilusWindow    *window);
 void             nautilus_window_go_to                (NautilusWindow    *window,
Index: src/file-manager/fm-directory-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-directory-view.c,v
retrieving revision 1.662
diff -u -p -r1.662 fm-directory-view.c
--- src/file-manager/fm-directory-view.c	12 Mar 2005 11:45:12 -0000	1.662
+++ src/file-manager/fm-directory-view.c	18 Mar 2005 23:28:16 -0000
@@ -7069,6 +7069,9 @@ finish_loading (FMDirectoryView *view)
 	 * Subclasses use this to know that the new metadata is now available.
 	 */
 	fm_directory_view_begin_loading (view);
+	
+	/* Assume we have now all information to show window */
+	nautilus_window_info_show_window  (view->details->window);
 
 	if (nautilus_directory_are_all_files_seen (view->details->model)) {
 		schedule_idle_display_of_pending_files (view);		
