@@ -1273,17 +1273,17 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
1273
1273
switch (eom_transform_get_transform_type (transform )) {
1274
1274
case EOM_TRANSFORM_ROT_90 :
1275
1275
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 );
1277
1277
break ;
1278
1278
case EOM_TRANSFORM_ROT_270 :
1279
1279
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 );
1281
1281
break ;
1282
1282
case EOM_TRANSFORM_ROT_180 :
1283
1283
case EOM_TRANSFORM_TRANSPOSE :
1284
1284
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 );
1287
1287
break ;
1288
1288
case EOM_TRANSFORM_NONE :
1289
1289
default :
@@ -1292,7 +1292,8 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
1292
1292
cairo_matrix_init_translate (& translate , image_offset_x , image_offset_y );
1293
1293
cairo_matrix_multiply (& matrix , & matrix , & translate );
1294
1294
}
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 );
1296
1297
cairo_matrix_multiply (& matrix , & matrix , & scale );
1297
1298
cairo_matrix_init_translate (& translate , xofs , yofs );
1298
1299
cairo_matrix_multiply (& matrix , & matrix , & translate );
0 commit comments