commit a99fb6c9951b7b65dac6dba605078352db63c158
parent 5a965d62ae17f0480372cf187e79faaebed01894
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Sun, 15 Jul 2018 20:49:15 +0200
Improve textview keypress handling for scrolling. (PgUp/Down, Space, Backspace)
Diffstat:
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/textview.c b/src/textview.c
@@ -2405,6 +2405,7 @@ static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
GdkWindow *window = NULL;
SummaryView *summaryview = NULL;
MessageView *messageview = textview->messageview;
+ gboolean mod_pressed;
if (!event) return FALSE;
if (messageview->mainwin)
@@ -2416,8 +2417,6 @@ static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
case GDK_KEY_Up:
case GDK_KEY_Right:
case GDK_KEY_Down:
- case GDK_KEY_Page_Up:
- case GDK_KEY_Page_Down:
case GDK_KEY_Control_L:
case GDK_KEY_Control_R:
return FALSE;
@@ -2426,14 +2425,19 @@ static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
textview_scroll_max(textview,(event->keyval == GDK_KEY_Home));
return TRUE;
case GDK_KEY_space:
- if (summaryview)
- summary_pass_key_press_event(summaryview, event);
- else
- mimeview_scroll_page
- (messageview->mimeview,
- (event->state &
- (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
+ mod_pressed = ((event->state & (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
+ if (!mimeview_scroll_page(messageview->mimeview, mod_pressed) &&
+ summaryview != NULL) {
+ if (mod_pressed)
+ summary_select_prev_unread(summaryview);
+ else
+ summary_select_next_unread(summaryview);
+ }
break;
+ case GDK_KEY_Page_Down:
+ mimeview_scroll_page(messageview->mimeview, FALSE);
+ break;
+ case GDK_KEY_Page_Up:
case GDK_KEY_BackSpace:
mimeview_scroll_page(messageview->mimeview, TRUE);
break;