]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view.c
Do not change current page when returning from black/white mode in
[evince.git] / shell / ev-view.c
index ba69b27cb7bda5022d7f39150d36a42eea145707..08694725b5c40b69cc3ac028d17912151ced5576 100644 (file)
@@ -2931,7 +2931,10 @@ draw_one_page (EvView       *view,
                
                page_width = cairo_image_surface_get_width (page_surface);
                page_height = cairo_image_surface_get_height (page_surface);
-
+               
+               cairo_rectangle (cr, overlap.x, overlap.y, overlap.width, overlap.height);
+               cairo_clip (cr);
+               
                cairo_translate (cr, overlap.x, overlap.y);
                
                if (width != page_width || height != page_height) {
@@ -2969,6 +2972,9 @@ draw_one_page (EvView       *view,
                selection_width = cairo_image_surface_get_width (selection_surface);
                selection_height = cairo_image_surface_get_height (selection_surface);
 
+               cairo_rectangle (cr, overlap.x, overlap.y, overlap.width, overlap.height);
+               cairo_clip (cr);
+               
                cairo_translate (cr, overlap.x, overlap.y);
 
                if (width != selection_width || height != selection_height) {
@@ -4898,6 +4904,13 @@ ev_view_next_page (EvView *view)
        if (!view->page_cache)
                return FALSE;
 
+       if (view->presentation &&
+           (view->presentation_state == EV_PRESENTATION_BLACK ||
+            view->presentation_state == EV_PRESENTATION_WHITE)) {
+               ev_view_reset_presentation_state (view);
+               return FALSE; 
+       }       
+
        ev_view_presentation_transition_stop (view);
        ev_view_reset_presentation_state (view);
        
@@ -4939,6 +4952,13 @@ ev_view_previous_page (EvView *view)
                ev_view_reset_presentation_state (view);
                return TRUE;
        }
+       
+       if (view->presentation && 
+           (view->presentation_state == EV_PRESENTATION_BLACK ||
+            view->presentation_state == EV_PRESENTATION_WHITE)) {
+               ev_view_reset_presentation_state (view);
+               return FALSE; 
+       }       
 
        ev_view_reset_presentation_state (view);