Capitalize modifier names, prefer Command on macOS

So far, the macOS special casing is only partial.

Also, GtkShortcutsWindow confusingly labels Command as Meta.
This commit is contained in:
Přemysl Eric Janouch 2022-08-03 23:33:13 +02:00
parent 5bae7c1bd2
commit d1d9caaa5e
Signed by: p
GPG Key ID: A0420B94F92B9493
2 changed files with 34 additions and 30 deletions

View File

@ -1419,14 +1419,18 @@ fiv_view_class_init(FivViewClass *klass)
widget_class->scroll_event = fiv_view_scroll_event;
widget_class->key_press_event = fiv_view_key_press_event;
// _gtk_get_primary_accel_mod() is private.
GdkModifierType primary = GDK_CONTROL_MASK;
gtk_accelerator_parse_with_keycode("<Primary>", NULL, NULL, &primary);
GtkBindingSet *bs = gtk_binding_set_by_class(klass);
// First, the standard, intuitive bindings.
bind(bs, GDK_KEY_0, GDK_CONTROL_MASK, FIV_VIEW_COMMAND_ZOOM_1);
bind(bs, GDK_KEY_plus, GDK_CONTROL_MASK, FIV_VIEW_COMMAND_ZOOM_IN);
bind(bs, GDK_KEY_minus, GDK_CONTROL_MASK, FIV_VIEW_COMMAND_ZOOM_OUT);
bind(bs, GDK_KEY_p, GDK_CONTROL_MASK, FIV_VIEW_COMMAND_PRINT);
bind(bs, GDK_KEY_r, GDK_CONTROL_MASK, FIV_VIEW_COMMAND_RELOAD);
bind(bs, GDK_KEY_s, GDK_CONTROL_MASK, FIV_VIEW_COMMAND_SAVE_PAGE);
bind(bs, GDK_KEY_0, primary, FIV_VIEW_COMMAND_ZOOM_1);
bind(bs, GDK_KEY_plus, primary, FIV_VIEW_COMMAND_ZOOM_IN);
bind(bs, GDK_KEY_minus, primary, FIV_VIEW_COMMAND_ZOOM_OUT);
bind(bs, GDK_KEY_p, primary, FIV_VIEW_COMMAND_PRINT);
bind(bs, GDK_KEY_r, primary, FIV_VIEW_COMMAND_RELOAD);
bind(bs, GDK_KEY_s, primary, FIV_VIEW_COMMAND_SAVE_PAGE);
bind(bs, GDK_KEY_s, GDK_MOD1_MASK, FIV_VIEW_COMMAND_SAVE_FRAME);
bind(bs, GDK_KEY_Return, GDK_MOD1_MASK, FIV_VIEW_COMMAND_INFO);

44
fiv.c
View File

@ -82,23 +82,23 @@ struct key_section {
static struct key help_keys_general[] = {
{"F1", "Show help"},
{"F10", "Open menu"},
{"<control>question", "Keyboard shortcuts"},
{"q <control>q", "Quit"},
{"<control>w", "Quit"},
{"<Control>question", "Keyboard shortcuts"},
{"q <Control>q", "Quit"},
{"<Control>w", "Quit"},
{}
};
static struct key help_keys_navigation[] = {
{"<control>l", "Open location..."},
{"<control>n", "Open a new window"},
{"<alt>Left", "Go back in history"},
{"<alt>Right", "Go forward in history"},
{"<Control>l", "Open location..."},
{"<Control>n", "Open a new window"},
{"<Alt>Left", "Go back in history"},
{"<Alt>Right", "Go forward in history"},
{}
};
static struct key help_keys_view[] = {
{"F11 f", "Toggle fullscreen"},
{"<alt><shift>d", "Toggle dark theme variant"},
{"<Alt><Shift>d", "Toggle dark theme variant"},
{}
};
@ -107,17 +107,17 @@ static struct key_group help_keys_browser[] = {
{"General: Navigation", help_keys_navigation},
{"General: View", help_keys_view},
{"Navigation", (struct key[]) {
{"<alt>Up", "Go to parent directory"},
{"<alt>Home", "Go home"},
{"<Alt>Up", "Go to parent directory"},
{"<Alt>Home", "Go home"},
{"Return", "Open selected item"},
{}
}},
{"View", (struct key[]) {
{"F9", "Toggle navigation sidebar"},
{"F5 r <control>r", "Reload"},
{"h <control>h", "Toggle hiding unsupported files"},
{"<control>plus", "Larger thumbnails"},
{"<control>minus", "Smaller thumbnails"},
{"F5 r <Control>r", "Reload"},
{"h <Control>h", "Toggle hiding unsupported files"},
{"<Control>plus", "Larger thumbnails"},
{"<Control>minus", "Smaller thumbnails"},
{}
}},
{}
@ -135,14 +135,14 @@ static struct key_group help_keys_viewer[] = {
}},
{"View", (struct key[]) {
{"F8", "Toggle toolbar"},
{"F5 r <control>r", "Reload"},
{"F5 r <Primary>r", "Reload"},
{}
}},
{"Zoom", (struct key[]) {
{"<control>0", "Set zoom to 100%"},
{"<Primary>0", "Set zoom to 100%"},
{"1...9", "Set zoom to N:1"},
{"plus <control>plus", "Zoom in"},
{"minus <control>minus", "Zoom out"},
{"plus <Primary>plus", "Zoom in"},
{"minus <Primary>minus", "Zoom out"},
{"w", "Zoom to fit width if larger"},
{"h", "Zoom to fit height if larger"},
{}
@ -175,10 +175,10 @@ static struct key_group help_keys_viewer[] = {
{}
}},
{"Tools", (struct key[]) {
{"<control>p", "Print..."},
{"<control>s", "Save page as..."},
{"<control><shift>s", "Save frame as..."},
{"<alt>Return", "Show file information"},
{"<Primary>p", "Print..."},
{"<Primary>s", "Save page as..."},
{"<Primary><Shift>s", "Save frame as..."},
{"<Alt>Return", "Show file information"},
{}
}},
{}