From f6a87c016ecead37f8232bea58de4f0b0d3e3680 Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Thu, 29 Jun 2017 11:05:59 +0100 Subject: [PATCH] Addl fix #488: Issues using Geeqie to compare pictures https://github.com/BestImageViewer/geeqie/issues/488 Implement Alt-Up and Alt-Down keys --- .../GuideReferenceKeyboardShortcuts.xml | 14 ++++++++++ src/layout_util.c | 26 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/doc/docbook/GuideReferenceKeyboardShortcuts.xml b/doc/docbook/GuideReferenceKeyboardShortcuts.xml index a07aa97b..c6cd6c22 100644 --- a/doc/docbook/GuideReferenceKeyboardShortcuts.xml +++ b/doc/docbook/GuideReferenceKeyboardShortcuts.xml @@ -702,6 +702,20 @@ Previous split pane. + + + Alt + Up Arrow + + + Up or previous split pane. + + + + Alt + Down Arrow + + + Down or next split pane. + diff --git a/src/layout_util.c b/src/layout_util.c index e35904c3..fc431c89 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -1421,6 +1421,24 @@ static void layout_menu_split_pane_prev_cb(GtkAction *action, gpointer data) layout_image_activate(lw, active_frame, FALSE); } +static void layout_menu_split_pane_updown_cb(GtkAction *action, gpointer data) +{ + LayoutWindow *lw = data; + gint active_frame; + + active_frame = lw->active_split_image; + + if (lw->split_images[MAX_SPLIT_IMAGES-1] ) + { + active_frame = active_frame ^ 2; + } + else + { + active_frame = active_frame ^ 1; + } + layout_image_activate(lw, active_frame, FALSE); +} + static void layout_menu_image_last_cb(GtkAction *action, gpointer data) { LayoutWindow *lw = data; @@ -1799,6 +1817,8 @@ static GtkActionEntry menu_entries[] = { { "StereoCycle", NULL, N_("_Cycle through stereo modes"), NULL, N_("Cycle through stereo modes"), CB(layout_menu_stereo_mode_next_cb) }, { "SplitNextPane", NULL, N_("_Next Pane"), "Right", N_("Next Pane"), CB(layout_menu_split_pane_next_cb) }, { "SplitPreviousPane", NULL, N_("_Previous Pane"), "Left", N_("Previous Pane"), CB(layout_menu_split_pane_prev_cb) }, + { "SplitUpPane", NULL, N_("_Up Pane"), "Up", N_("Up Pane"), CB(layout_menu_split_pane_updown_cb) }, + { "SplitDownPane", NULL, N_("_Down Pane"), "Down", N_("Down Pane"), CB(layout_menu_split_pane_updown_cb) }, { "WriteRotation", NULL, N_("_Write orientation to file"), NULL, N_("Write orientation to file"), CB(layout_menu_write_rotate_cb) }, { "WriteRotationKeepDate", NULL, N_("_Write orientation to file (preserve timestamp)"), NULL, N_("Write orientation to file (preserve timestamp)"), CB(layout_menu_write_rotate_keep_date_cb) }, @@ -2028,6 +2048,8 @@ static const gchar *menu_ui_description = " " " " " " +" " +" " " " " " " " @@ -2694,6 +2716,10 @@ static void layout_util_sync_views(LayoutWindow *lw) gtk_action_set_sensitive(action, !(lw->split_mode == SPLIT_NONE)); action = gtk_action_group_get_action(lw->action_group, "SplitPreviousPane"); gtk_action_set_sensitive(action, !(lw->split_mode == SPLIT_NONE)); + action = gtk_action_group_get_action(lw->action_group, "SplitUpPane"); + gtk_action_set_sensitive(action, !(lw->split_mode == SPLIT_NONE)); + action = gtk_action_group_get_action(lw->action_group, "SplitDownPane"); + gtk_action_set_sensitive(action, !(lw->split_mode == SPLIT_NONE)); action = gtk_action_group_get_action(lw->action_group, "ViewIcons"); gtk_radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->options.file_view_type); -- 2.20.1