]> www.fi.muni.cz Git - evince.git/blobdiff - libview/ev-transition-animation.c
[libview] Do not scale when drawing animations in presentation mode
[evince.git] / libview / ev-transition-animation.c
index efcb509e24108af97fc38de2331171593d057ea5..9a1213753da3525ada902d4a8ab918dbeebae420 100644 (file)
@@ -189,23 +189,9 @@ paint_surface (cairo_t         *cr,
               gdouble          alpha,
               GdkRectangle     page_area)
 {
-       gint width, height;
-
-       gdk_cairo_rectangle (cr, &page_area);
-       cairo_clip (cr);
-
-       width = cairo_image_surface_get_width (surface);
-       height = cairo_image_surface_get_height (surface);
-
        cairo_save (cr);
 
-       if (width != page_area.width || height != page_area.height) {
-               cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_FAST);
-               cairo_scale (cr,
-                            (gdouble) page_area.width / width,
-                            (gdouble) page_area.height / height);
-       }
-
+       gdk_cairo_rectangle (cr, &page_area);
        cairo_surface_set_device_offset (surface, x_offset, y_offset);
        cairo_set_source_surface (cr, surface, 0, 0);
 
@@ -635,6 +621,9 @@ ev_transition_animation_set_origin_surface (EvTransitionAnimation *animation,
 
        priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation);
 
+       if (priv->origin_surface == origin_surface)
+               return;
+
        surface = cairo_surface_reference (origin_surface);
 
        if (priv->origin_surface)
@@ -658,6 +647,9 @@ ev_transition_animation_set_dest_surface (EvTransitionAnimation *animation,
 
        priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation);
 
+       if (priv->dest_surface == dest_surface)
+               return;
+
        surface = cairo_surface_reference (dest_surface);
 
        if (priv->dest_surface)