Fix #499: Unable to move zoomed image
authorColin Clark <colin.clark@cclark.uk>
Mon, 24 Jul 2017 10:08:35 +0000 (11:08 +0100)
committerColin Clark <colin.clark@cclark.uk>
Mon, 24 Jul 2017 10:08:35 +0000 (11:08 +0100)
https://github.com/BestImageViewer/geeqie/issues/499

src/image.c
src/layout_image.c

index e04037f..2be32c5 100644 (file)
@@ -67,6 +67,19 @@ static void image_click_cb(PixbufRenderer *pr, GdkEventButton *event, gpointer d
                }
 }
 
+static void image_press_cb(PixbufRenderer *pr, GdkEventButton *event, gpointer data)
+{
+       ImageWindow *imd = data;
+       LayoutWindow *lw;
+
+       lw = layout_find_by_image(imd);
+       if (event->button == MOUSE_BUTTON_LEFT && event->type == GDK_2BUTTON_PRESS  && !options->image_lm_click_nav)
+               {
+               if (lw->full_screen)
+                       layout_image_full_screen_stop(lw);
+               }
+}
+
 static void image_drag_cb(PixbufRenderer *pr, GdkEventMotion *event, gpointer data)
 {
        ImageWindow *imd = data;
@@ -1941,8 +1954,10 @@ ImageWindow *image_new(gboolean frame)
 
        image_set_selectable(imd, 0);
 
-       g_signal_connect(G_OBJECT(imd->pr), "button_press_event",
+       g_signal_connect(G_OBJECT(imd->pr), "clicked",
                         G_CALLBACK(image_click_cb), imd);
+       g_signal_connect(G_OBJECT(imd->pr), "button_press_event",
+                        G_CALLBACK(image_press_cb), imd);
        g_signal_connect(G_OBJECT(imd->pr), "scroll_notify",
                         G_CALLBACK(image_scroll_notify_cb), imd);
 
index 8289cb7..4b0f3cd 100644 (file)
@@ -1686,11 +1686,6 @@ static void layout_image_button_cb(ImageWindow *imd, GdkEventButton *event, gpoi
        switch (event->button)
                {
                case MOUSE_BUTTON_LEFT:
-                       if (event->type == GDK_2BUTTON_PRESS)
-                               {
-                               if (lw->full_screen)
-                                       layout_image_full_screen_stop(lw);
-                               }
                        if (options->image_lm_click_nav && lw->split_mode == SPLIT_NONE)
                                layout_image_next(lw);
                        break;