X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fimg-view.c;h=d31853cc24fa7f4f274f1ffeca06b47349553a08;hb=e5f56d798fbeb235694e58f8741dbbd619225c46;hp=06368d4ed539aa4845a245b6e8e18d254574e9ff;hpb=e436ea53511e1dadab981af18b237fee83fde39b;p=geeqie.git diff --git a/src/img-view.c b/src/img-view.c index 06368d4e..d31853cc 100644 --- a/src/img-view.c +++ b/src/img-view.c @@ -1,16 +1,24 @@ /* - * Geeqie - * (C) 2006 John Ellis - * Copyright (C) 2008 - 2012 The Geeqie Team + * Copyright (C) 2006 John Ellis + * Copyright (C) 2008 - 2016 The Geeqie Team * * Author: John Ellis * - * This software is released under the GNU General Public License (GNU GPL). - * Please read the included file COPYING for more information. - * This software comes with no warranty of any kind, use at your own risk! + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ - #include "main.h" #include "img-view.h" @@ -413,13 +421,13 @@ static gboolean view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, switch (event->keyval) { case 'R': case 'r': - image_alter_orientation(imd, ALTER_ROTATE_180); + image_alter_orientation(imd, imd->image_fd, ALTER_ROTATE_180); break; case 'M': case 'm': - image_alter_orientation(imd, ALTER_MIRROR); + image_alter_orientation(imd, imd->image_fd, ALTER_MIRROR); break; case 'F': case 'f': - image_alter_orientation(imd, ALTER_FLIP); + image_alter_orientation(imd, imd->image_fd, ALTER_FLIP); break; case 'G': case 'g': image_set_desaturate(imd, !image_get_desaturate(imd)); @@ -523,10 +531,10 @@ static gboolean view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, view_overlay_toggle(vw); break; case ']': - image_alter_orientation(imd, ALTER_ROTATE_90); + image_alter_orientation(imd, imd->image_fd, ALTER_ROTATE_90); break; case '[': - image_alter_orientation(imd, ALTER_ROTATE_90_CC); + image_alter_orientation(imd, imd->image_fd, ALTER_ROTATE_90_CC); break; case GDK_KEY_Delete: case GDK_KEY_KP_Delete: if (options->file_ops.enable_delete_key) @@ -572,10 +580,12 @@ static void button_cb(ImageWindow *imd, GdkEventButton *event, gpointer data) switch (event->button) { case MOUSE_BUTTON_LEFT: - view_step_next(vw); + if (options->image_lm_click_nav) + view_step_next(vw); break; case MOUSE_BUTTON_MIDDLE: - view_step_prev(vw); + if (options->image_lm_click_nav) + view_step_prev(vw); break; case MOUSE_BUTTON_RIGHT: menu = view_popup_menu(vw); @@ -590,7 +600,8 @@ static void scroll_cb(ImageWindow *imd, GdkEventScroll *event, gpointer data) { ViewWindow *vw = data; - if (event->state & GDK_CONTROL_MASK) + if ((event->state & GDK_CONTROL_MASK) || + (imd->mouse_wheel_mode && !options->image_lm_click_nav)) { switch (event->direction) { @@ -663,7 +674,7 @@ static void view_fullscreen_toggle(ViewWindow *vw, gboolean force_off) { if (image_osd_get(vw->imd) & OSD_SHOW_INFO) image_osd_set(vw->imd, image_osd_get(vw->fs->imd)); - + fullscreen_stop(vw->fs); } else @@ -689,7 +700,7 @@ static void view_overlay_toggle(ViewWindow *vw) ImageWindow *imd; imd = view_window_active_image(vw); - + image_osd_toggle(imd); } @@ -979,7 +990,7 @@ void view_window_colors_update(void) { ViewWindow *vw = work->data; work = work->next; - + image_background_set_color_from_options(vw->imd, !!vw->fs); } } @@ -1071,7 +1082,7 @@ static void view_alter_cb(GtkWidget *widget, gpointer data) type = GPOINTER_TO_INT(data); if (!vw) return; - image_alter_orientation(vw->imd, type); + image_alter_orientation(vw->imd, vw->imd->image_fd, type); } static void view_wallpaper_cb(GtkWidget *widget, gpointer data) @@ -1237,7 +1248,7 @@ static GList *view_window_get_fd_list(ViewWindow *vw) FileData *fd = image_get_fd(imd); if (fd) list = g_list_append(NULL, file_data_ref(fd)); } - + return list; } @@ -1660,7 +1671,7 @@ static void view_window_notify_cb(FileData *fd, NotifyType type, gpointer data) ViewWindow *vw = data; if (!(type & NOTIFY_CHANGE) || !fd->change) return; - + DEBUG_1("Notify view_window: %s %04x", fd->path, type); switch (fd->change->type)