diff options
Diffstat (limited to 'shell/ev-view.c')
-rw-r--r-- | shell/ev-view.c | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c index 636e0f5..5678fc2 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -969,10 +969,10 @@ ev_view_set_scroll_adjustments (EvView *view, } static void -add_scroll_binding (GtkBindingSet *binding_set, - guint keyval, - GtkScrollType scroll, - gboolean horizontal) +add_scroll_binding_keypad (GtkBindingSet *binding_set, + guint keyval, + GtkScrollType scroll, + gboolean horizontal) { guint keypad_keyval = keyval - GDK_Left + GDK_KP_Left; @@ -987,6 +987,23 @@ add_scroll_binding (GtkBindingSet *binding_set, } static void +add_scroll_binding_shifted (GtkBindingSet *binding_set, + guint keyval, + GtkScrollType scroll_normal, + GtkScrollType scroll_shifted, + gboolean horizontal) +{ + gtk_binding_entry_add_signal (binding_set, keyval, 0, + "scroll_view", 2, + GTK_TYPE_SCROLL_TYPE, scroll_normal, + G_TYPE_BOOLEAN, horizontal); + gtk_binding_entry_add_signal (binding_set, keyval, GDK_SHIFT_MASK, + "scroll_view", 2, + GTK_TYPE_SCROLL_TYPE, scroll_shifted, + G_TYPE_BOOLEAN, horizontal); +} + +static void ev_view_jump (EvView *view, GtkScrollType scroll) { @@ -1178,16 +1195,16 @@ ev_view_class_init (EvViewClass *class) binding_set = gtk_binding_set_by_class (class); - add_scroll_binding (binding_set, GDK_Left, GTK_SCROLL_STEP_BACKWARD, TRUE); - add_scroll_binding (binding_set, GDK_Right, GTK_SCROLL_STEP_FORWARD, TRUE); - add_scroll_binding (binding_set, GDK_Up, GTK_SCROLL_STEP_BACKWARD, FALSE); - add_scroll_binding (binding_set, GDK_Down, GTK_SCROLL_STEP_FORWARD, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Left, GTK_SCROLL_STEP_BACKWARD, TRUE); + add_scroll_binding_keypad (binding_set, GDK_Right, GTK_SCROLL_STEP_FORWARD, TRUE); + add_scroll_binding_keypad (binding_set, GDK_Up, GTK_SCROLL_STEP_BACKWARD, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Down, GTK_SCROLL_STEP_FORWARD, FALSE); - add_scroll_binding (binding_set, GDK_Page_Up, GTK_SCROLL_PAGE_BACKWARD, FALSE); - add_scroll_binding (binding_set, GDK_Page_Down, GTK_SCROLL_PAGE_FORWARD, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Page_Up, GTK_SCROLL_PAGE_BACKWARD, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Page_Down, GTK_SCROLL_PAGE_FORWARD, FALSE); - add_scroll_binding (binding_set, GDK_space, EV_SCROLL_PAGE_FORWARD, FALSE); - add_scroll_binding (binding_set, GDK_BackSpace, EV_SCROLL_PAGE_BACKWARD, FALSE); + add_scroll_binding_shifted (binding_set, GDK_space, EV_SCROLL_PAGE_FORWARD, EV_SCROLL_PAGE_BACKWARD, FALSE); + add_scroll_binding_shifted (binding_set, GDK_BackSpace, EV_SCROLL_PAGE_BACKWARD, EV_SCROLL_PAGE_FORWARD, FALSE); } static void |