X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=blobdiff_plain;f=src%2Flayout_image.c;h=091a75dd6250a70222e7145fc40e63444102556a;hp=c520942a4371e16113721e4325682be08d894d2f;hb=e826f76dba8d57420edcfcf4bf47612798aadfa7;hpb=1ff687c9c2e6f97053ccd0d4d60079440ba678fb diff --git a/src/layout_image.c b/src/layout_image.c index c520942a..091a75dd 100644 --- a/src/layout_image.c +++ b/src/layout_image.c @@ -64,7 +64,8 @@ static void layout_image_full_screen_stop_func(FullScreenData *fs, gpointer data LayoutWindow *lw = data; /* restore image window */ - lw->image = fs->normal_imd; + if (lw->image == fs->imd) + lw->image = fs->normal_imd; lw->full_screen = NULL; } @@ -79,7 +80,8 @@ void layout_image_full_screen_start(LayoutWindow *lw) layout_image_full_screen_stop_func, lw); /* set to new image window */ - lw->image = lw->full_screen->imd; + if (lw->full_screen->same_region) + lw->image = lw->full_screen->imd; layout_image_set_buttons(lw); @@ -87,10 +89,6 @@ void layout_image_full_screen_start(LayoutWindow *lw) G_CALLBACK(layout_key_press_cb), lw); layout_actions_add_window(lw, lw->full_screen->window); -#if 0 - gtk_widget_set_sensitive(lw->window, FALSE); - if (lw->tools) gtk_widget_set_sensitive(lw->tools, FALSE); -#endif image_osd_copy_status(lw->full_screen->normal_imd, lw->image); } @@ -100,14 +98,10 @@ void layout_image_full_screen_stop(LayoutWindow *lw) if (!layout_valid(&lw)) return; if (!lw->full_screen) return; - image_osd_copy_status(lw->image, lw->full_screen->normal_imd); + if (lw->image == lw->full_screen->imd) + image_osd_copy_status(lw->image, lw->full_screen->normal_imd); fullscreen_stop(lw->full_screen); - -#if 0 - gtk_widget_set_sensitive(lw->window, TRUE); - if (lw->tools) gtk_widget_set_sensitive(lw->tools, TRUE); -#endif } void layout_image_full_screen_toggle(LayoutWindow *lw) @@ -692,8 +686,6 @@ static void layout_image_dnd_get(GtkWidget *widget, GdkDragContext *context, if (fd) { - gchar *text = NULL; - gint len; GList *list; list = g_list_append(NULL, fd); @@ -780,6 +772,11 @@ void layout_image_scroll(LayoutWindow *lw, gint x, gint y, gboolean connect_scro image_scroll(lw->image, x, y); + if (lw->full_screen && lw->image != lw->full_screen->imd) + { + image_scroll(lw->full_screen->imd, x, y); + } + if (!connect_scroll) return; image_get_image_size(lw->image, &width, &height); @@ -807,6 +804,11 @@ void layout_image_zoom_adjust(LayoutWindow *lw, gdouble increment, gboolean conn image_zoom_adjust(lw->image, increment); + if (lw->full_screen && lw->image != lw->full_screen->imd) + { + image_zoom_adjust(lw->full_screen->imd, increment); + } + if (!connect_zoom) return; for (i = 0; i < MAX_SPLIT_IMAGES; i++) @@ -823,6 +825,11 @@ void layout_image_zoom_adjust_at_point(LayoutWindow *lw, gdouble increment, gint image_zoom_adjust_at_point(lw->image, increment, x, y); + if (lw->full_screen && lw->image != lw->full_screen->imd) + { + image_zoom_adjust_at_point(lw->full_screen->imd, increment, x, y); + } + if (!connect_zoom) return; for (i = 0; i < MAX_SPLIT_IMAGES; i++) @@ -839,6 +846,11 @@ void layout_image_zoom_set(LayoutWindow *lw, gdouble zoom, gboolean connect_zoom image_zoom_set(lw->image, zoom); + if (lw->full_screen && lw->image != lw->full_screen->imd) + { + image_zoom_set(lw->full_screen->imd, zoom); + } + if (!connect_zoom) return; for (i = 0; i < MAX_SPLIT_IMAGES; i++) @@ -855,6 +867,11 @@ void layout_image_zoom_set_fill_geometry(LayoutWindow *lw, gboolean vertical, gb image_zoom_set_fill_geometry(lw->image, vertical); + if (lw->full_screen && lw->image != lw->full_screen->imd) + { + image_zoom_set_fill_geometry(lw->full_screen->imd, vertical); + } + if (!connect_zoom) return; for (i = 0; i < MAX_SPLIT_IMAGES; i++) @@ -967,6 +984,12 @@ void layout_image_set_fd(LayoutWindow *lw, FileData *fd) image_change_fd(lw->image, fd, image_zoom_get_default(lw->image)); + if (lw->full_screen && lw->image != lw->full_screen->imd) + { + image_change_fd(lw->full_screen->imd, fd, image_zoom_get_default(lw->full_screen->imd)); + } + + layout_list_sync_fd(lw, fd); layout_image_slideshow_continue_check(lw); layout_bars_new_image(lw); @@ -1460,6 +1483,23 @@ static void layout_image_drag_cb(ImageWindow *imd, GdkEventButton *event, gdoubl { gint i; LayoutWindow *lw = data; + gdouble sx, sy; + + if (lw->full_screen && lw->image != lw->full_screen->imd && + imd != lw->full_screen->imd) + { + if (event->state & GDK_CONTROL_MASK) + { + image_get_scroll_center(imd, &sx, &sy); + } + else + { + image_get_scroll_center(lw->full_screen->imd, &sx, &sy); + sx += dx; + sy += dy; + } + image_set_scroll_center(lw->full_screen->imd, sx, sy); + } if (!(event->state & GDK_SHIFT_MASK)) return; @@ -1467,7 +1507,6 @@ static void layout_image_drag_cb(ImageWindow *imd, GdkEventButton *event, gdoubl { if (lw->split_images[i] && lw->split_images[i] != imd) { - gdouble sx, sy; if (event->state & GDK_CONTROL_MASK) {