Hi Denis,

My worst term in years is over, so I am back :) here is a small patch
that I have found very useful over the years. It enables space and
shift-space to be added to PgUp and PgDown as ways to scroll through
pages. I find space easier to type :) and works as web browsers work.

--dmg


commit 314be88f998be17a9cb7504317bf4472a6a503a5
Author: Daniel M German <d...@uvic.ca>
Date:   Fri Dec 5 15:13:32 2014 -0800

    added space to scroll in canvas mode

diff --git a/src/xo-callbacks.c b/src/xo-callbacks.c
index 5a5b841..6218ce7 100644
--- a/src/xo-callbacks.c
+++ b/src/xo-callbacks.c
@@ -2711,7 +2711,8 @@ on_canvas_key_press_event              (GtkWidget       
*widget,
   pgheight = GTK_WIDGET(canvas)->allocation.height;
   adj = 
gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(GET_COMPONENT("scrolledwindowMain")));
 
-  if (event->keyval == GDK_Page_Down || event->keyval == GDK_Down) {
+  if (event->keyval == GDK_Page_Down || event->keyval == GDK_Down ||
+      (event->keyval == GDK_space && event->state == 0)) {
     if (ui.view_continuous!=VIEW_MODE_CONTINUOUS && 
          (0.96 * ui.zoom * ui.cur_page->height < pgheight ||
           adj->value == adj->upper-pgheight)) 
@@ -2726,7 +2727,8 @@ on_canvas_key_press_event              (GtkWidget       
*widget,
     if (adj->value == adj->upper-pgheight) return TRUE; // don't send focus 
away
   }
 
-  if (event->keyval == GDK_Page_Up || event->keyval == GDK_Up) {
+  if (event->keyval == GDK_Page_Up || event->keyval == GDK_Up | 
+      (event->keyval == GDK_space && event->state == GDK_SHIFT_MASK)) {
     if (ui.view_continuous!=VIEW_MODE_CONTINUOUS && 
          (0.96 * ui.zoom * ui.cur_page->height < pgheight ||
           adj->value == adj->lower))
diff --git a/src/xo-misc.c b/src/xo-misc.c
index 195072b..777194a 100644
--- a/src/xo-misc.c
+++ b/src/xo-misc.c
@@ -2259,6 +2259,14 @@ void add_scroll_bindings(void)
   gtk_binding_entry_add_signal(binding_set, GDK_KP_Right, 0,
     "scroll_child", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_FORWARD, 
     G_TYPE_BOOLEAN, TRUE);  
+  // make space scroll down
+  gtk_binding_entry_add_signal(binding_set, GDK_space, 0,
+                              "scroll_child", 2, GTK_TYPE_SCROLL_TYPE, 
GTK_SCROLL_PAGE_DOWN, 
+                              G_TYPE_BOOLEAN, TRUE);  
+  // and shift space up
+  gtk_binding_entry_add_signal(binding_set, GDK_space, GDK_SHIFT_MASK,
+                              "scroll_child", 2, GTK_TYPE_SCROLL_TYPE, 
GTK_SCROLL_PAGE_UP, 
+                              G_TYPE_BOOLEAN, TRUE);  
 }
 
 gboolean is_event_within_textview(GdkEventButton *event)

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Xournal-devel mailing list
Xournal-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xournal-devel

Reply via email to