Show
Ignore:
Timestamp:
01/15/08 10:55:30 (11 months ago)
Author:
jordi
Message:

Based on a patch by Stephan Ritscher <stephan.ritscher@…>, I've updated the key bindings to move to next/previous page when moving to the right/left respectively and the page is at its right/left-most position.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/gtk/PageView.cxx

    r300 r301  
    560560    PagePter *pter = (PagePter *)data; 
    561561 
    562     GtkAdjustment *adjustment =  
     562    GtkAdjustment *hadjustment =  
     563        gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (widget)); 
     564    gdouble hposition = gtk_adjustment_get_value (hadjustment); 
     565    GtkAdjustment *vadjustment =  
    563566        gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (widget)); 
    564     gdouble position = gtk_adjustment_get_value (adjustment); 
     567    gdouble vposition = gtk_adjustment_get_value (vadjustment); 
    565568 
    566569    if ( event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK) ) 
     
    574577        case GDK_KP_Left: 
    575578        case GDK_h: 
     579            if ( hposition == hadjustment->lower ) 
     580            { 
     581                pter->scrollToPreviousPage (); 
     582                return TRUE; 
     583            } 
    576584            direction = GTK_SCROLL_STEP_LEFT; 
    577585            horizontal = TRUE; 
     
    581589        case GDK_KP_Right: 
    582590        case GDK_l: 
     591            if ( hposition == ( hadjustment->upper - hadjustment->page_size) ) 
     592            { 
     593                pter->scrollToNextPage (); 
     594                return TRUE; 
     595            } 
    583596            horizontal = TRUE; 
    584597            direction = GTK_SCROLL_STEP_RIGHT; 
     
    588601        case GDK_KP_Up: 
    589602        case GDK_k: 
    590             if ( position == adjustment->lower ) 
     603            if ( vposition == vadjustment->lower ) 
    591604            { 
    592605                pter->scrollToPreviousPage (); 
     
    599612        case GDK_KP_Down: 
    600613        case GDK_j: 
    601             if ( position == ( adjustment->upper - adjustment->page_size) ) 
     614            if ( vposition == ( vadjustment->upper - vadjustment->page_size) ) 
    602615            { 
    603616                pter->scrollToNextPage (); 
     
    609622        case GDK_Page_Up: 
    610623        case GDK_KP_Page_Up: 
    611             if ( position == adjustment->lower ) 
     624            if ( vposition == vadjustment->lower ) 
    612625            { 
    613626                pter->scrollToPreviousPage (); 
     
    621634        case GDK_Page_Down: 
    622635        case GDK_KP_Page_Down: 
    623             if ( position == ( adjustment->upper - adjustment->page_size) ) 
     636            if ( vposition == ( vadjustment->upper - vadjustment->page_size) ) 
    624637            { 
    625638                pter->scrollToNextPage ();