]> www.fi.muni.cz Git - evince.git/blobdiff - libview/ev-view.c
[printing] Fix multipage even/odd printing issues
[evince.git] / libview / ev-view.c
index 60a58af8c72660903ac18a9673976260a92957d1..31ce2f52d942fa0819d42e0440ffdbc73d8ded9d 100644 (file)
@@ -520,14 +520,14 @@ view_update_range_and_current_page (EvView *view)
                for (i = end; i > view->end_page; i--) {
                        hide_annotation_windows (view, i);
                }
-
-               ev_pixbuf_cache_set_page_range (view->pixbuf_cache,
-                                               view->start_page,
-                                               view->end_page,
-                                               view->rotation,
-                                               view->scale,
-                                               view->selection_info.selections);
        }
+
+       ev_pixbuf_cache_set_page_range (view->pixbuf_cache,
+                                       view->start_page,
+                                       view->end_page,
+                                       view->rotation,
+                                       view->scale,
+                                       view->selection_info.selections);
 }
 
 static void
@@ -3800,7 +3800,7 @@ ev_view_key_press_event (GtkWidget   *widget,
        if (!view->document)
                return FALSE;
 
-       if (!view->presentation) {
+       if (!GTK_WIDGET_HAS_FOCUS (widget)) {
                /* Forward key events to current focused window child */
                if (view->window_child_focus) {
                        GdkEventKey *new_event;
@@ -3815,7 +3815,12 @@ ev_view_key_press_event (GtkWidget   *widget,
 
                        return handled;
                }
-       } else if (view->presentation_state == EV_PRESENTATION_END)
+
+               return FALSE;
+       }
+
+       if (!view->presentation ||
+           view->presentation_state == EV_PRESENTATION_END)
                return gtk_bindings_activate_event (GTK_OBJECT (widget), event);
 
 
@@ -4546,6 +4551,8 @@ ev_view_init (EvView *view)
 {
        GTK_WIDGET_SET_FLAGS (view, GTK_CAN_FOCUS);
 
+       view->start_page = -1;
+       view->end_page = -1;
        view->spacing = 5;
        view->scale = 1.0;
        view->current_page = 0;
@@ -4885,6 +4892,8 @@ ev_view_set_document (EvView     *view,
                        setup_caches (view);
                 }
 
+               view_update_range_and_current_page (view);
+
                gtk_widget_queue_resize (GTK_WIDGET (view));
        }
 }