nautilus r14216 - in branches/multiview: . src



Author: cneumair
Date: Sat May 31 10:55:48 2008
New Revision: 14216
URL: http://svn.gnome.org/viewvc/nautilus?rev=14216&view=rev

Log:
2008-05-31  Christian Neumair  <cneumair gnome org>

	* src/nautilus-window.c (get_first_inactive_slot),
	(nautilus_window_slot_close):
	If no previously active slot remains, use an inactive slot.


Modified:
   branches/multiview/ChangeLog
   branches/multiview/src/nautilus-window.c

Modified: branches/multiview/src/nautilus-window.c
==============================================================================
--- branches/multiview/src/nautilus-window.c	(original)
+++ branches/multiview/src/nautilus-window.c	Sat May 31 10:55:48 2008
@@ -841,18 +841,39 @@
 	return NULL;
 }
 
+static inline NautilusWindowSlot *
+get_first_inactive_slot (NautilusWindow *window)
+{
+	GList *l;
+	NautilusWindowSlot *slot;
+
+	for (l = window->details->slots; l != NULL; l = l->next) {
+		slot = NAUTILUS_WINDOW_SLOT (l->data);
+		if (slot != window->details->active_slot) {
+			return slot;
+		}
+	}
+
+	return NULL;
+}
+
 void
 nautilus_window_slot_close (NautilusWindowSlot *slot)
 {
 	NautilusWindow *window;
+	NautilusWindowSlot *next_slot;
 
 	window = slot->window;
 	if (window != NULL) {
 		window->details->active_slots = g_list_remove (window->details->active_slots, slot);
 
 		if (window->details->active_slot == slot) {
-			nautilus_window_set_active_slot (window,
-							 get_last_active_slot (window));
+			next_slot = get_last_active_slot (window);
+			if (next_slot == NULL) {
+				next_slot = get_first_inactive_slot (window);
+			}
+
+			nautilus_window_set_active_slot (window, next_slot);
 		}
 
 		nautilus_window_close_slot (window, slot);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]