comparison src/layout_image.c @ 1172:08ef8c605723

When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
author zas_
date Sat, 22 Nov 2008 22:43:18 +0000
parents 8721675f80ce
children 52ce0263cb7c
comparison
equal deleted inserted replaced
1171:8721675f80ce 1172:08ef8c605723
1594 gint i; 1594 gint i;
1595 1595
1596 for (i = 0; i < n; i++) 1596 for (i = 0; i < n; i++)
1597 if (!lw->split_images[i]) 1597 if (!lw->split_images[i])
1598 { 1598 {
1599 FileData *img_fd = NULL;
1600 double zoom = 0.0;
1601
1599 layout_image_new(lw, i); 1602 layout_image_new(lw, i);
1600 image_set_frame(lw->split_images[i], frame); 1603 image_set_frame(lw->split_images[i], frame);
1601 image_set_selectable(lw->split_images[i], 1); 1604 image_set_selectable(lw->split_images[i], 1);
1602 if (lw->image) 1605
1606 if (layout_selection_count(lw, 0) > 1)
1607 {
1608 GList *work = layout_selection_list(lw);
1609 gint j = 0;
1610
1611 while (work && j < i)
1612 {
1613 FileData *fd = work->data;
1614 work = work->next;
1615
1616 j++;
1617 if (!fd || !*fd->path) continue;
1618 img_fd = fd;
1619 }
1620 }
1621
1622 if (!img_fd && lw->image)
1623 {
1624 img_fd = image_get_fd(lw->image);
1625 zoom = image_zoom_get(lw->image);
1626 }
1627
1628 if (img_fd)
1603 { 1629 {
1604 gdouble sx, sy; 1630 gdouble sx, sy;
1605 image_change_fd(lw->split_images[i], 1631 image_change_fd(lw->split_images[i], img_fd, zoom);
1606 image_get_fd(lw->image), image_zoom_get(lw->image));
1607 image_get_scroll_center(lw->image, &sx, &sy); 1632 image_get_scroll_center(lw->image, &sx, &sy);
1608 image_set_scroll_center(lw->split_images[i], sx, sy); 1633 image_set_scroll_center(lw->split_images[i], sx, sy);
1609 } 1634 }
1610 layout_image_deactivate(lw, i); 1635 layout_image_deactivate(lw, i);
1611 } 1636 }