From ee5f63e50b1eeeac7ffafd755b249b3a056bd34c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?=
Date: Wed, 26 Jan 2022 04:42:16 +0100
Subject: [PATCH] Adjust keyboard shortcuts
---
fiv.c | 76 ++++++++++++++++++++++++++++++++++++-----------------------
1 file changed, 47 insertions(+), 29 deletions(-)
diff --git a/fiv.c b/fiv.c
index 41aa7e5..f505e40 100644
--- a/fiv.c
+++ b/fiv.c
@@ -72,52 +72,64 @@ struct key_section {
};
static struct key help_keys_general[] = {
- {"F1 question", "Show this list of shortcuts"},
- {"F11 f", "Toggle fullscreen view"},
+ {"F1", "Show help"},
+ {"F10", "Open menu"},
+ {"question", "Keyboard shortcuts"},
+ {"q q", "Quit"},
+ {"w", "Quit"},
+ {}
+};
+
+static struct key help_keys_navigation[] = {
+ {"l", "Open location..."},
+ {"n", "Open a new window"},
+ {"Left", "Go back in history"},
+ {"Right", "Go forward in history"},
+ {}
+};
+
+static struct key help_keys_view[] = {
+ {"F11 f", "Toggle fullscreen"},
{"d", "Toggle dark theme variant"},
- {"q q", "Exit the program"},
- {"Escape w", "Exit the program"},
{}
};
static struct key_group help_keys_browser[] = {
{"General", help_keys_general},
- {"View", (struct key[]) {
- {"F9", "Toggle navigation sidebar"},
- {"F5 r r", "Refresh"},
- {"h h", "Toggle hiding unsupported files"},
- {"plus", "Larger thumbnails"},
- {"minus", "Smaller thumbnails"},
- {}
- }},
+ {"General: Navigation", help_keys_navigation},
+ {"General: View", help_keys_view},
{"Navigation", (struct key[]) {
- {"l", "Open location..."},
- {"n", "Open a new window"},
- {"Left", "Go back in history"},
- {"Right", "Go forward in history"},
{"Up", "Go to parent directory"},
{"Home", "Go home"},
{"Return", "Open selected item"},
{}
}},
+ {"View", (struct key[]) {
+ {"F9", "Toggle navigation sidebar"},
+ {"F5 r r", "Reload"},
+ {"h h", "Toggle hiding unsupported files"},
+ {"plus", "Larger thumbnails"},
+ {"minus", "Smaller thumbnails"},
+ {}
+ }},
{}
};
-static struct key_group help_keys_view[] = {
+static struct key_group help_keys_viewer[] = {
{"General", help_keys_general},
+ {"General: Navigation", help_keys_navigation},
+ {"General: View", help_keys_view},
+ {"Navigation", (struct key[]) {
+ {"Left Up Page_Up", "Previous image"},
+ {"Right Down Page_Down", "Next image"},
+ {"Escape Return", "Return to browser"},
+ {}
+ }},
{"View", (struct key[]) {
{"F8", "Toggle toolbar"},
{"F5 r r", "Reload"},
{}
}},
- {"Navigation", (struct key[]) {
- {"l", "Open location..."},
- {"n", "Open a new window"},
- {"Left Up Page_Up", "Previous image"},
- {"Right Down Page_Down", "Next image"},
- {"Return Left", "Return to browser"},
- {}
- }},
{"Zoom", (struct key[]) {
{"0", "Set zoom to 100%"},
{"1...9", "Set zoom to N:1"},
@@ -165,7 +177,7 @@ static struct key_group help_keys_view[] = {
static struct key_section help_keys[] = {
{"Browser", "browser", help_keys_browser},
- {"View", "view", help_keys_view},
+ {"Viewer", "viewer", help_keys_viewer},
{}
};
@@ -1028,7 +1040,7 @@ show_help_shortcuts(void)
g_object_set(window, "section-name",
gtk_stack_get_visible_child(GTK_STACK(g.stack)) == g.view_box
- ? "view"
+ ? "viewer"
: "browser",
NULL);
gtk_widget_show(window);
@@ -1069,7 +1081,10 @@ on_key_press(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event,
fiv_sidebar_show_enter_location(FIV_SIDEBAR(g.browser_sidebar));
return TRUE;
case GDK_KEY_n:
- spawn_uri(g.directory);
+ if (gtk_stack_get_visible_child(GTK_STACK(g.stack)) == g.view_box)
+ spawn_uri(g.uri);
+ else
+ spawn_uri(g.directory);
return TRUE;
case GDK_KEY_o:
on_open();
@@ -1109,7 +1124,6 @@ on_key_press(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event,
break;
case 0:
switch (event->keyval) {
- case GDK_KEY_Escape:
case GDK_KEY_q:
gtk_widget_destroy(g.window);
return TRUE;
@@ -1176,6 +1190,7 @@ on_key_press_view(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event,
on_next();
return TRUE;
+ case GDK_KEY_Escape:
case GDK_KEY_Return:
switch_to_browser();
fiv_browser_select(FIV_BROWSER(g.browser), g.uri);
@@ -1218,6 +1233,9 @@ on_key_press_browser_paned(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event,
break;
case 0:
switch (event->keyval) {
+ case GDK_KEY_Escape:
+ fiv_browser_select(FIV_BROWSER(g.browser), NULL);
+ return TRUE;
case GDK_KEY_h:
gtk_button_clicked(GTK_BUTTON(g.funnel));
return TRUE;