Mercurial > hg > forks > geeqie
changeset 2461:d3c1a9ca3107
Fix #85: can not switch to list view in folder pane with keyboard
https://github.com/BestImageViewer/geeqie/issues/85
Ctrl-T is now a toggle to switch between list view and tree view in the
folder pane
author | Colin Clark <cclark@mcb.net> |
---|---|
date | Thu, 23 Mar 2017 10:06:59 +0000 |
parents | 7c6eccb3aea8 |
children | e4c44411a090 |
files | src/layout_util.c |
diffstat | 1 files changed, 16 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/layout_util.c Wed Mar 22 15:58:25 2017 +0000 +++ b/src/layout_util.c Thu Mar 23 10:06:59 2017 +0000 @@ -637,12 +637,20 @@ layout_views_set(lw, lw->options.dir_view_type, (FileViewType) gtk_radio_action_get_current_value(action)); } -static void layout_menu_view_dir_as_cb(GtkRadioAction *action, GtkRadioAction *current, gpointer data) +static void layout_menu_view_dir_as_cb(GtkToggleAction *action, gpointer data) { LayoutWindow *lw = data; layout_exit_fullscreen(lw); - layout_views_set(lw, (DirViewType) gtk_radio_action_get_current_value(action), lw->options.file_view_type); + + if (gtk_toggle_action_get_active(action)) + { + layout_views_set(lw, DIRVIEW_TREE, lw->options.file_view_type); + } + else + { + layout_views_set(lw, DIRVIEW_LIST, lw->options.file_view_type); + } } static void layout_menu_view_in_new_window_cb(GtkAction *action, gpointer data) @@ -1614,9 +1622,8 @@ { "ViewIcons", NULL, N_("I_cons"), "<control>I", N_("View Images as Icons"), FILEVIEW_ICON } }; -static GtkRadioActionEntry menu_view_dir_radio_entries[] = { - { "FolderList", NULL, N_("Folder Li_st"), "<meta>L", N_("View Folders as List"), DIRVIEW_LIST }, - { "FolderTree", NULL, N_("Folder T_ree"), "<control>T", N_("View Folders as Tree"), DIRVIEW_TREE }, +static GtkToggleActionEntry menu_view_dir_toggle_entries[] = { + { "FolderTree", NULL, N_("T_oggle Folder View"), "<control>T", N_("Toggle Folders View"), CB(layout_menu_view_dir_as_cb),FALSE }, }; static GtkRadioActionEntry menu_split_radio_entries[] = { @@ -1749,7 +1756,6 @@ " <placeholder name='WindowSection'/>" " <separator/>" " <menu action='FileDirMenu'>" -" <menuitem action='FolderList'/>" " <menuitem action='FolderTree'/>" " <placeholder name='FolderSection'/>" " <separator/>" @@ -2175,9 +2181,9 @@ gtk_action_group_add_radio_actions(lw->action_group, menu_split_radio_entries, G_N_ELEMENTS(menu_split_radio_entries), 0, G_CALLBACK(layout_menu_split_cb), lw); - gtk_action_group_add_radio_actions(lw->action_group, - menu_view_dir_radio_entries, DIRVIEW_LAST + 1 /* count */, - 0, G_CALLBACK(layout_menu_view_dir_as_cb), lw); + gtk_action_group_add_toggle_actions(lw->action_group, + menu_view_dir_toggle_entries, G_N_ELEMENTS(menu_view_dir_toggle_entries), + lw); gtk_action_group_add_radio_actions(lw->action_group, menu_color_radio_entries, COLOR_PROFILE_FILE + COLOR_PROFILE_INPUTS, 0, G_CALLBACK(layout_color_menu_input_cb), lw); @@ -2453,7 +2459,7 @@ if (!lw->action_group) return; action = gtk_action_group_get_action(lw->action_group, "FolderTree"); - gtk_radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->options.dir_view_type); + gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->options.dir_view_type); action = gtk_action_group_get_action(lw->action_group, "SplitSingle"); gtk_radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->split_mode);