[evolution-patches] 64987, goto next unread fails if you select a thread




Selecting multiple rows was remvoing the cursor_uid and making things like goto next/next unread/etc fail.

iI think it actually did it for a reason, but i doubt that reason is valid anymore since we use selections rather than the cursor_uid externally to the MessageList code.
? mail/ems.diff
? mail/evolution-mail-2.0.schemas
? mail/m.diff
? mail/ma.diff
? mail/default/zh_CN/Makefile
? mail/default/zh_CN/Makefile.in
Index: mail/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.3577
diff -u -p -r1.3577 ChangeLog
--- mail/ChangeLog	21 Feb 2005 06:37:13 -0000	1.3577
+++ mail/ChangeLog	21 Feb 2005 07:46:30 -0000
@@ -1,3 +1,11 @@
+2005-02-21  Not Zed  <NotZed Ximian com>
+
+	** See bug #64987
+
+	* message-list.c (message_list_select_thread): select the paths
+	with one call.
+	(on_selection_changed_cmd): get the cursor_uid from the cursor.
+
 2005-02-14  Not Zed  <NotZed Ximian com>
 
 	** See bug #61363 & e-util/ChangeLog
Index: mail/message-list.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/message-list.c,v
retrieving revision 1.410
diff -u -p -r1.410 message-list.c
--- mail/message-list.c	21 Feb 2005 06:37:13 -0000	1.410
+++ mail/message-list.c	21 Feb 2005 07:46:33 -0000
@@ -740,7 +740,6 @@ message_list_select_thread (MessageList 
 {
 	ETreeSelectionModel *etsm;
 	thread_select_info_t tsi;
-	int i;
 	
 	tsi.ml = message_list;
 	tsi.paths = g_ptr_array_new ();
@@ -748,14 +747,10 @@ message_list_select_thread (MessageList 
 	etsm = (ETreeSelectionModel *) e_tree_get_selection_model (message_list->tree);
 	
 	e_tree_selected_path_foreach (message_list->tree, thread_select_foreach, &tsi);
-	
-	for (i = 0; i < tsi.paths->len; i++)
-		e_tree_selection_model_add_to_selection (etsm, tsi.paths->pdata[i]);
-	
+	e_tree_selection_model_select_paths(etsm, tsi.paths);
 	g_ptr_array_free (tsi.paths, TRUE);
 }
 
-
 /**
  * message_list_invert_selection:
  * @message_list: Message List widget
@@ -2927,12 +2922,15 @@ on_selection_changed_cmd(ETree *tree, Me
 {
 	GPtrArray *uids;
 	char *newuid;
+	ETreePath cursor;
 
 	/* not sure if we could just ignore this for the cursor, i think sometimes you
 	   only get a selection changed when you should also get a cursor activated? */
 	uids = message_list_get_selected(ml);
 	if (uids->len == 1)
 		newuid = uids->pdata[0];
+	else if ((cursor = e_tree_get_cursor(tree)))
+		newuid = (char *)camel_message_info_uid(e_tree_memory_node_get_data((ETreeMemory *)tree, cursor));
 	else
 		newuid = NULL;
 


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