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;
}
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);
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);
}
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)
else
list = g_list_append(NULL, file_data_ref(fd));
}
-
+
return list;
}
if (!path) gtk_widget_set_sensitive(item, FALSE);
item = menu_item_add_stock(menu, _("_Delete..."), GTK_STOCK_DELETE, G_CALLBACK(li_pop_menu_delete_cb), lw);
if (!path) gtk_widget_set_sensitive(item, FALSE);
-
+
item = menu_item_add(menu, _("_Copy path"), G_CALLBACK(li_pop_menu_copy_path_cb), lw);
if (!path) gtk_widget_set_sensitive(item, FALSE);
if (fd)
{
- gchar *text = NULL;
- gint len;
GList *list;
list = g_list_append(NULL, fd);
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);
dx = (gdouble) x / width;
dy = (gdouble) y / height;
-
+
for (i = 0; i < MAX_SPLIT_IMAGES; i++)
{
if (lw->split_images[i] && lw->split_images[i] != lw->image)
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++)
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++)
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++)
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++)
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);
{
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;
{
if (lw->split_images[i] && lw->split_images[i] != imd)
{
- gdouble sx, sy;
if (event->state & GDK_CONTROL_MASK)
{
if (width < 1 || height < 1) return;
pixbuf_renderer_get_mouse_position(pr, &x_pixel, &y_pixel);
-
+
if(x_pixel >= 0 && y_pixel >= 0)
{
gint r_mouse, g_mouse, b_mouse;
-
+
pixbuf_renderer_get_pixel_colors(pr, x_pixel, y_pixel,
- &r_mouse, &g_mouse, &b_mouse);
-
+ &r_mouse, &g_mouse, &b_mouse);
+
text = g_strdup_printf(_("[%*d,%*d]: RGB(%3d,%3d,%3d)"),
num_length(width - 1), x_pixel,
num_length(height - 1), y_pixel,
r_mouse, g_mouse, b_mouse);
-
+
}
else
{
{
lw->split_images[i] = image_new(TRUE);
-#if GTK_CHECK_VERSION(2,12,0)
g_object_ref(lw->split_images[i]->widget);
-#else
- gtk_widget_ref(lw->split_images[i]->widget);
-#endif
g_signal_connect(G_OBJECT(lw->split_images[i]->pr), "update-pixel",
G_CALLBACK(layout_status_update_pixel_cb), lw);
layout_image_new(lw, i);
image_set_frame(lw->split_images[i], frame);
image_set_selectable(lw->split_images[i], (n > 1));
-
+
if (lw->image)
{
image_osd_copy_status(lw->image, lw->split_images[i]);
{
GList *work = g_list_last(layout_selection_list(lw));
gint j = 0;
-
+
if (work) work = work->prev;
while (work && j < i)
{
FileData *fd = work->data;
work = work->prev;
-
+
j++;
if (!fd || !*fd->path) continue;
img_fd = fd;
{
if (lw->split_images[i])
{
-#if GTK_CHECK_VERSION(2,12,0)
g_object_unref(lw->split_images[i]->widget);
-#else
- gtk_widget_unref(lw->split_images[i]->widget);
-#endif
lw->split_images[i] = NULL;
}
}
-
+
if (!lw->image || lw->active_split_image < 0 || lw->active_split_image >= n)
{
layout_image_activate(lw, 0, TRUE);
GtkWidget *layout_image_setup_split_none(LayoutWindow *lw)
{
lw->split_mode = SPLIT_NONE;
-
+
layout_image_setup_split_common(lw, 1);
lw->split_image_widget = lw->split_images[0]->widget;
GtkWidget *layout_image_setup_split_hv(LayoutWindow *lw, gboolean horizontal)
{
GtkWidget *paned;
-
+
lw->split_mode = horizontal ? SPLIT_HOR : SPLIT_VERT;
layout_image_setup_split_common(lw, 2);
}
layout_image_set_fd(lw, NULL);
}
-
- /* the image will be set to the next image from the list soon,
+
+ /* the image will be set to the next image from the list soon,
setting it to NULL here is not necessary*/
}
}
if (!(type & NOTIFY_CHANGE) || !fd->change) return;
DEBUG_1("Notify layout_image: %s %04x", fd->path, type);
-
+
switch (fd->change->type)
{
case FILEDATA_CHANGE_MOVE: