** Fix for bug #337160

2008-06-13  Milan Crha  <mcrha@redhat.com>

	** Fix for bug #337160

	* message-list.c: (on_cursor_activated_cmd): Do not pretend the row
	with a cursor is selected when it isn't. Also take care of multiselect.
	* message-list.c: (on_selection_changed_cmd):
	Do not pretend the row with a cursor is selected when it isn't.


svn path=/trunk/; revision=35633
This commit is contained in:
Milan Crha
2008-06-13 06:32:36 +00:00
committed by Milan Crha
parent 2d93a52ec9
commit 00e55f86df
2 changed files with 26 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2008-06-13 Milan Crha <mcrha@redhat.com>
** Fix for bug #337160
* message-list.c: (on_cursor_activated_cmd): Do not pretend the row
with a cursor is selected when it isn't. Also take care of multiselect.
* message-list.c: (on_selection_changed_cmd):
Do not pretend the row with a cursor is selected when it isn't.
2008-06-13 Milan Crha <mcrha@redhat.com>
** Fix for bug #538002

View File

@ -3307,8 +3307,24 @@ on_cursor_activated_cmd (ETree *tree, int row, ETreePath path, gpointer user_dat
{
MessageList *message_list = MESSAGE_LIST (user_data);
const char *new_uid;
ESelectionModel *etsm;
gint selected;
if (path == NULL)
etsm = e_tree_get_selection_model (message_list->tree);
selected = e_selection_model_selected_count (etsm);
if (selected == 1) {
GPtrArray *uids;
uids = message_list_get_selected (message_list);
new_uid = g_strdup (uids->pdata [0]);
message_list_free_uids (message_list, uids);
} else if (path == NULL
|| !e_selection_model_is_row_selected (etsm, e_selection_model_cursor_row (etsm))
|| selected != 1)
new_uid = NULL;
else
new_uid = get_message_uid (message_list, path);
@ -3332,15 +3348,12 @@ on_selection_changed_cmd(ETree *tree, MessageList *ml)
{
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;