diff options
Diffstat (limited to 'src/eom-scroll-view.c')
-rw-r--r-- | src/eom-scroll-view.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/eom-scroll-view.c b/src/eom-scroll-view.c index f35e022..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); @@ -558,7 +563,6 @@ create_background_surface (EomScrollView *view) --------------------------------------*/ - /* Scrolls the view to the specified offsets. */ static void scroll_to (EomScrollView *view, int x, int y, gboolean change_adjustments) @@ -640,7 +644,6 @@ scroll_by (EomScrollView *view, int xofs, int yofs) scroll_to (view, priv->xofs + xofs, priv->yofs + yofs, TRUE); } - /* Callback used when an adjustment is changed */ static void adjustment_changed_cb (GtkAdjustment *adj, gpointer data) @@ -657,7 +660,6 @@ adjustment_changed_cb (GtkAdjustment *adj, gpointer data) gtk_widget_queue_resize (GTK_WIDGET (view)); } - /* Drags the image to the specified position */ static void drag_to (EomScrollView *view, int x, int y) @@ -923,7 +925,6 @@ display_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer data) return TRUE; } - /* Button press event handler for the image view */ static gboolean eom_scroll_view_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data) @@ -1032,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; @@ -1158,7 +1159,6 @@ display_size_change (GtkWidget *widget, GdkEventConfigure *event, gpointer data) update_scrollbar_values (view); } - static gboolean eom_scroll_view_focus_in_event (GtkWidget *widget, GdkEventFocus *event, @@ -1299,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); @@ -1307,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. */ @@ -1370,7 +1371,6 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data) return TRUE; } - /*================================== image loading callbacks @@ -2075,7 +2075,6 @@ eom_scroll_view_set_property (GObject *object, guint property_id, } } - static void eom_scroll_view_class_init (EomScrollViewClass *klass) { @@ -2248,7 +2247,6 @@ eom_scroll_view_new (void) "column-homogeneous", FALSE, NULL); - return widget; } |