# HG changeset patch # User zas_ # Date 1227393798 0 # Node ID 08ef8c60572332ccf71f62096e67a23e0ec80043 # Parent 8721675f80ce288c0edbc77ca133f0a3adfaf3e0 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized. diff -r 8721675f80ce -r 08ef8c605723 src/layout_image.c --- a/src/layout_image.c Sat Nov 22 22:10:10 2008 +0000 +++ b/src/layout_image.c Sat Nov 22 22:43:18 2008 +0000 @@ -1596,14 +1596,39 @@ for (i = 0; i < n; i++) if (!lw->split_images[i]) { + FileData *img_fd = NULL; + double zoom = 0.0; + layout_image_new(lw, i); image_set_frame(lw->split_images[i], frame); image_set_selectable(lw->split_images[i], 1); - if (lw->image) + + if (layout_selection_count(lw, 0) > 1) + { + GList *work = layout_selection_list(lw); + gint j = 0; + + while (work && j < i) + { + FileData *fd = work->data; + work = work->next; + + j++; + if (!fd || !*fd->path) continue; + img_fd = fd; + } + } + + if (!img_fd && lw->image) + { + img_fd = image_get_fd(lw->image); + zoom = image_zoom_get(lw->image); + } + + if (img_fd) { gdouble sx, sy; - image_change_fd(lw->split_images[i], - image_get_fd(lw->image), image_zoom_get(lw->image)); + image_change_fd(lw->split_images[i], img_fd, zoom); image_get_scroll_center(lw->image, &sx, &sy); image_set_scroll_center(lw->split_images[i], sx, sy); }