[lasem] svg_view: fix pattern matrix in create_surface_pattern.



commit 080ebb5b0e3cd20ae6546362a1a89c6cab17e122
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Sat Aug 28 21:44:18 2010 +0200

    svg_view: fix pattern matrix in create_surface_pattern.
    
    There was a mismatch in x_scale and y_scale computation.
    And the matrix == NULL case was wrong.

 src/lsmsvgview.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/src/lsmsvgview.c b/src/lsmsvgview.c
index d9d2dc9..d973c23 100644
--- a/src/lsmsvgview.c
+++ b/src/lsmsvgview.c
@@ -280,8 +280,8 @@ lsm_svg_view_create_surface_pattern (LsmSvgView *view,
 		device_width = ceil (device_width);
 	}
 
-	x_scale = device_height / viewport->height;
-	y_scale = device_width / viewport->width;
+	x_scale = device_width / viewport->width;
+	y_scale = device_height / viewport->height;
 
 	lsm_debug ("render", "[LsmSvgView::create_pattern] pattern size = %g ,%g at %g, %g (scale %g x %g)",
 		   device_width, device_height, viewport->x, viewport->y, x_scale, y_scale);
@@ -318,8 +318,8 @@ lsm_svg_view_create_surface_pattern (LsmSvgView *view,
 		cairo_matrix_scale (&matrix, 1.0 / x_scale, 1.0 / y_scale);
 		cairo_matrix_invert (&matrix);
 	} else {
-		cairo_matrix_init_translate (&matrix, -viewport->x, -viewport->y);
-		cairo_matrix_scale (&matrix, 1.0 / x_scale, 1.0 / y_scale);
+		cairo_matrix_init_scale (&matrix, x_scale, y_scale);
+		cairo_matrix_translate (&matrix, -viewport->x, -viewport->y);
 	}
 
 	cairo_pattern_set_matrix (view->pattern_data->pattern, &matrix);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]