@@ -1273,17 +1273,17 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
12731273 switch (eom_transform_get_transform_type (transform )) {
12741274 case EOM_TRANSFORM_ROT_90 :
12751275 case EOM_TRANSFORM_FLIP_HORIZONTAL :
1276- image_offset_x = (double ) gdk_pixbuf_get_width (priv -> pixbuf ) / priv -> scale ;
1276+ image_offset_x = (double ) gdk_pixbuf_get_width (priv -> pixbuf );
12771277 break ;
12781278 case EOM_TRANSFORM_ROT_270 :
12791279 case EOM_TRANSFORM_FLIP_VERTICAL :
1280- image_offset_y = (double ) gdk_pixbuf_get_height (priv -> pixbuf ) / priv -> scale ;
1280+ image_offset_y = (double ) gdk_pixbuf_get_height (priv -> pixbuf );
12811281 break ;
12821282 case EOM_TRANSFORM_ROT_180 :
12831283 case EOM_TRANSFORM_TRANSPOSE :
12841284 case EOM_TRANSFORM_TRANSVERSE :
1285- image_offset_x = (double ) gdk_pixbuf_get_width (priv -> pixbuf ) / priv -> scale ;
1286- image_offset_y = (double ) gdk_pixbuf_get_height (priv -> pixbuf ) / priv -> scale ;
1285+ image_offset_x = (double ) gdk_pixbuf_get_width (priv -> pixbuf );
1286+ image_offset_y = (double ) gdk_pixbuf_get_height (priv -> pixbuf );
12871287 break ;
12881288 case EOM_TRANSFORM_NONE :
12891289 default :
@@ -1292,7 +1292,8 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
12921292 cairo_matrix_init_translate (& translate , image_offset_x , image_offset_y );
12931293 cairo_matrix_multiply (& matrix , & matrix , & translate );
12941294 }
1295- cairo_matrix_init_scale (& scale , priv -> zoom , priv -> zoom );
1295+ /* Zoom factor for SVGs is already scaled, so scale back to application pixels. */
1296+ cairo_matrix_init_scale (& scale , priv -> zoom / priv -> scale , priv -> zoom / priv -> scale );
12961297 cairo_matrix_multiply (& matrix , & matrix , & scale );
12971298 cairo_matrix_init_translate (& translate , xofs , yofs );
12981299 cairo_matrix_multiply (& matrix , & matrix , & translate );
0 commit comments