diff options
Diffstat (limited to 'src/eom-scroll-view.c')
-rw-r--r-- | src/eom-scroll-view.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/eom-scroll-view.c b/src/eom-scroll-view.c index d438021..ee57c77 100644 --- a/src/eom-scroll-view.c +++ b/src/eom-scroll-view.c @@ -87,8 +87,8 @@ struct _EomScrollViewPrivate { /* actual image */ EomImage *image; - guint image_changed_id; - guint frame_changed_id; + gulong image_changed_id; + gulong frame_changed_id; GdkPixbuf *pixbuf; cairo_surface_t *surface; @@ -188,15 +188,20 @@ free_image_resources (EomScrollView *view) priv = view->priv; - if (priv->image_changed_id > 0) { +#if GLIB_CHECK_VERSION(2,62,0) + g_clear_signal_handler (&priv->image_changed_id, priv->image); + g_clear_signal_handler (&priv->frame_changed_id, priv->image); +#else + if (priv->image_changed_id != 0) { g_signal_handler_disconnect (priv->image, priv->image_changed_id); priv->image_changed_id = 0; } - if (priv->frame_changed_id > 0) { + if (priv->frame_changed_id != 0) { g_signal_handler_disconnect (priv->image, priv->frame_changed_id); priv->frame_changed_id = 0; } +#endif if (priv->image != NULL) { eom_image_data_unref (priv->image); @@ -1028,12 +1033,12 @@ eom_scroll_view_scroll_event (GtkWidget *widget, GdkEventScroll *event, gpointer case GDK_SCROLL_DOWN: zoom_factor = 1.0 / priv->zoom_multiplier; xofs = 0; - yofs = yofs; + /* yofs = yofs; */ break; case GDK_SCROLL_RIGHT: zoom_factor = priv->zoom_multiplier; - xofs = xofs; + /* xofs = xofs; */ yofs = 0; break; @@ -1294,7 +1299,8 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data) cairo_matrix_init_identity (&matrix); if (transform) { cairo_matrix_t affine; - double image_offset_x = 0., image_offset_y = 0.; + int image_offset_x = 0; + int image_offset_y = 0; eom_transform_get_affine (transform, &affine); cairo_matrix_multiply (&matrix, &affine, &matrix); @@ -1302,23 +1308,23 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data) switch (eom_transform_get_transform_type (transform)) { case EOM_TRANSFORM_ROT_90: case EOM_TRANSFORM_FLIP_HORIZONTAL: - image_offset_x = (double) gdk_pixbuf_get_width (priv->pixbuf); + image_offset_x = gdk_pixbuf_get_width (priv->pixbuf); break; case EOM_TRANSFORM_ROT_270: case EOM_TRANSFORM_FLIP_VERTICAL: - image_offset_y = (double) gdk_pixbuf_get_height (priv->pixbuf); + image_offset_y = gdk_pixbuf_get_height (priv->pixbuf); break; case EOM_TRANSFORM_ROT_180: case EOM_TRANSFORM_TRANSPOSE: case EOM_TRANSFORM_TRANSVERSE: - image_offset_x = (double) gdk_pixbuf_get_width (priv->pixbuf); - image_offset_y = (double) gdk_pixbuf_get_height (priv->pixbuf); + image_offset_x = gdk_pixbuf_get_width (priv->pixbuf); + image_offset_y = gdk_pixbuf_get_height (priv->pixbuf); break; case EOM_TRANSFORM_NONE: default: break; } - cairo_matrix_init_translate (&translate, image_offset_x, image_offset_y); + cairo_matrix_init_translate (&translate, (double) image_offset_x, (double) image_offset_y); cairo_matrix_multiply (&matrix, &matrix, &translate); } /* Zoom factor for SVGs is already scaled, so scale back to application pixels. */ |