Blob Blame History Raw
diff -up evolution-3.22.6/e-util/e-table-selection-model.c.indefinite-message-download evolution-3.22.6/e-util/e-table-selection-model.c
--- evolution-3.22.6/e-util/e-table-selection-model.c.indefinite-message-download	2014-03-24 10:25:23.000000000 +0100
+++ evolution-3.22.6/e-util/e-table-selection-model.c	2017-10-19 17:51:10.488332515 +0200
@@ -127,8 +127,8 @@ model_changed_idle (ETableSelectionModel
 			g_free (save_id);
 		}
 		free_hash (etsm);
-		e_selection_model_cursor_changed (E_SELECTION_MODEL (etsm), cursor_row, cursor_col);
 		e_selection_model_selection_changed (E_SELECTION_MODEL (etsm));
+		e_selection_model_cursor_changed (E_SELECTION_MODEL (etsm), cursor_row, cursor_col);
 	}
 	etsm->model_changed_idle_id = 0;
 	return FALSE;
diff -up evolution-3.22.6/mail/message-list.c.indefinite-message-download evolution-3.22.6/mail/message-list.c
--- evolution-3.22.6/mail/message-list.c.indefinite-message-download	2017-01-13 16:06:56.000000000 +0100
+++ evolution-3.22.6/mail/message-list.c	2017-10-19 17:51:14.995332453 +0200
@@ -5056,7 +5056,7 @@ on_selection_changed_cmd (ETree *tree,
 	 * is also used for other updating.  If it is empty, it might just be a setup event
 	 * from etree which we do need to ignore */
 	if ((newuid == NULL && message_list->cursor_uid == NULL && selected_count == 0) ||
-	    (message_list->last_sel_single && selected_count == 1 && newuid != NULL && message_list->cursor_uid != NULL && !strcmp (message_list->cursor_uid, newuid))) {
+	    (message_list->last_sel_single && selected_count == 1 && message_list->cursor_uid != NULL && (newuid == NULL || !strcmp (message_list->cursor_uid, newuid)))) {
 		/* noop */
 	} else {
 		g_free (message_list->cursor_uid);