commit 5b0e5014b16e2df843db0f9fe2ae58724025ab25
parent e025cbc3bde755867af6011a6558126a4fb183e0
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
@@ -2402,6 +2402,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)
@@ -2413,8 +2414,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;
@@ -2423,14 +2422,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;