summaryrefslogtreecommitdiff
path: root/src/eom-scroll-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eom-scroll-view.c')
-rw-r--r--src/eom-scroll-view.c38
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;
}