Mercurial > geeqie
diff src/pixbuf-renderer.c @ 128:98e2632b5d3d
improved connected scroll and active image switching
author | nadvornik |
---|---|
date | Tue, 10 Jul 2007 21:25:51 +0000 |
parents | 8d358a53146e |
children | b1acdfc7271b |
line wrap: on
line diff
--- a/src/pixbuf-renderer.c Fri Jun 29 15:16:46 2007 +0000 +++ b/src/pixbuf-renderer.c Tue Jul 10 21:25:51 2007 +0000 @@ -136,6 +136,7 @@ SIGNAL_CLICKED, SIGNAL_SCROLL_NOTIFY, SIGNAL_RENDER_COMPLETE, + SIGNAL_DRAG, SIGNAL_COUNT }; @@ -420,6 +421,16 @@ NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + signals[SIGNAL_DRAG] = + g_signal_new("drag", + G_OBJECT_CLASS_TYPE(gobject_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET(PixbufRendererClass, drag), + NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, + GDK_TYPE_EVENT); } static void pixbuf_renderer_init(PixbufRenderer *pr) @@ -2487,6 +2498,11 @@ } } +static void pr_drag_signal(PixbufRenderer *pr, GdkEventButton *bevent) +{ + g_signal_emit(pr, signals[SIGNAL_DRAG], 0, bevent); +} + /* *------------------------------------------------------------------- * sync and clamp @@ -3000,6 +3016,8 @@ pixbuf_renderer_scroll(pr, (pr->drag_last_x - bevent->x) * accel, (pr->drag_last_y - bevent->y) * accel); + pr_drag_signal(pr, bevent); + pr->drag_last_x = bevent->x; pr->drag_last_y = bevent->y;