Skip to content

Commit 2f04a37

Browse files
vkarehraveit65
authored and
raveit65
committed
svg: Fix offset coordinates when transforming SVG images on HiDPI displays
1 parent bca6a64 commit 2f04a37

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/eom-scroll-view.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)