The attached patch fixes bug 317531 [1] and makes Nautilus display all
expanded folder nodes in the list view display with the "visiting"
modifier and ensures that the "accept" dnd modifier takes precedence
over the "visiting" modifier. We used to be inconsistent wrt the icon
view precedence.

[1] http://bugzilla.gnome.org/show_bug.cgi?id=317531

-- 
Christian Neumair <[EMAIL PROTECTED]>
Index: src/file-manager/fm-list-model.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-list-model.c,v
retrieving revision 1.44
diff -u -p -r1.44 fm-list-model.c
--- src/file-manager/fm-list-model.c	6 Jul 2005 12:18:28 -0000	1.44
+++ src/file-manager/fm-list-model.c	29 Sep 2005 21:39:55 -0000
@@ -270,36 +270,44 @@ fm_list_model_get_value (GtkTreeModel *t
 		g_value_init (value, GDK_TYPE_PIXBUF);
 
 		if (file != NULL) {
+			GtkTreePath *file_path;
+
 			zoom_level = fm_list_model_get_zoom_level_from_column_id (column);
 			icon_size = nautilus_get_icon_size_for_zoom_level (zoom_level);
 
+			file_path = gtk_tree_model_get_path (tree_model, iter);
+
 			modifier = NULL;
+
+			if (nautilus_file_has_open_window (file)) {
+				modifier = "visiting";
+			}
+
 			if (model->details->drag_view != NULL) {
-				GtkTreePath *path_a, *path_b;
-				
+				GtkTreePath *drop_path;
+
+				if (gtk_tree_view_row_expanded (model->details->drag_view, file_path)) {
+					modifier = "visiting";
+				}
+
 				gtk_tree_view_get_drag_dest_row (model->details->drag_view,
-								 &path_a,
+								 &drop_path,
 								 NULL);
-				if (path_a != NULL) {
-					path_b = gtk_tree_model_get_path (tree_model, iter);
-
-					if (gtk_tree_path_compare (path_a, path_b) == 0) {
+				if (drop_path != NULL) {
+					if (gtk_tree_path_compare (file_path, drop_path) == 0) {
 						modifier = "accept";
 					}
-						
-					gtk_tree_path_free (path_a);
-					gtk_tree_path_free (path_b);
+
+					gtk_tree_path_free (drop_path);
 				}
 			}
-			
-			if (nautilus_file_has_open_window (file)) {
-				modifier = "visiting";
-			}
-			
+
 			icon = nautilus_icon_factory_get_pixbuf_for_file_force_size (file, modifier, icon_size);
 
 			g_value_set_object (value, icon);
 			g_object_unref (icon);
+
+			gtk_tree_path_free (file_path);
 		}
 		break;
 	case FM_LIST_MODEL_SMALLEST_EMBLEM_COLUMN:

Attachment: signature.asc
Description: This is a digitally signed message part

-- 
nautilus-list mailing list
nautilus-list@gnome.org
http://mail.gnome.org/mailman/listinfo/nautilus-list

Reply via email to