aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-06-06 01:52:25 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-06-06 01:52:25 +0800
commita15a2953237e02bd69005ea5c39e0d3d45e95cb9 (patch)
treed9eb219d002ee8efc64e3a20afc90cf7ec7d44bb
parentb3cdfb6bad5cad0932b02fa049da0fcab66a9603 (diff)
downloadgsoc2013-evolution-a15a2953237e02bd69005ea5c39e0d3d45e95cb9.tar.gz
gsoc2013-evolution-a15a2953237e02bd69005ea5c39e0d3d45e95cb9.tar.zst
gsoc2013-evolution-a15a2953237e02bd69005ea5c39e0d3d45e95cb9.zip
Bug 620602 - Next/prev shortcuts should focus message list
-rw-r--r--mail/message-list.c6
-rw-r--r--modules/mail/e-mail-shell-view-private.c7
2 files changed, 8 insertions, 5 deletions
diff --git a/mail/message-list.c b/mail/message-list.c
index ee80748e6f..2de21bf558 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -631,6 +631,12 @@ message_list_select(MessageList *ml, MessageListSelectDirection direction, guint
path = ml_search_path(ml, direction, flags, mask);
if (path) {
select_path(ml, path);
+
+ /* This function is usually called in response to a key
+ * press, so grab focus if the message list is visible. */
+ if (gtk_widget_get_visible (GTK_WIDGET (ml)))
+ gtk_widget_grab_focus (GTK_WIDGET (ml));
+
return TRUE;
} else
return FALSE;
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index b3e856fdee..4cef43263d 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -294,19 +294,16 @@ mail_shell_view_scroll_cb (EMailShellView *mail_shell_view,
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content);
message_list = e_mail_reader_get_message_list (reader);
- if (scroll_type == GTK_SCROLL_PAGE_FORWARD) {
- gtk_widget_grab_focus (message_list);
+ if (scroll_type == GTK_SCROLL_PAGE_FORWARD)
message_list_select (
MESSAGE_LIST (message_list),
MESSAGE_LIST_SELECT_NEXT,
0, CAMEL_MESSAGE_SEEN);
- } else {
- gtk_widget_grab_focus (message_list);
+ else
message_list_select (
MESSAGE_LIST (message_list),
MESSAGE_LIST_SELECT_PREVIOUS,
0, CAMEL_MESSAGE_SEEN);
- }
}
static void