summaryrefslogtreecommitdiff
path: root/src/ui/keys.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/keys.c')
-rw-r--r--src/ui/keys.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/ui/keys.c b/src/ui/keys.c
index 42d0d613..9df505e0 100644
--- a/src/ui/keys.c
+++ b/src/ui/keys.c
@@ -188,6 +188,7 @@ static void clear_Keys_(iKeys *d) {
188enum iBindFlag { 188enum iBindFlag {
189 argRepeat_BindFlag = iBit(1), 189 argRepeat_BindFlag = iBit(1),
190 argRelease_BindFlag = iBit(2), 190 argRelease_BindFlag = iBit(2),
191 noDirectTrigger_BindFlag = iBit(3), /* can only be triggered via LabelWidget */
191}; 192};
192 193
193/* TODO: This indirection could be used for localization, although all UI strings 194/* TODO: This indirection could be used for localization, although all UI strings
@@ -227,7 +228,16 @@ static const struct { int id; iMenuItem bind; int flags; } defaultBindings_[] =
227 { 81, { "${keys.tab.next}", nextTab_KeyShortcut, "tabs.next" }, 0 }, 228 { 81, { "${keys.tab.next}", nextTab_KeyShortcut, "tabs.next" }, 0 },
228 { 90, { "${keys.split.menu}", SDLK_j, KMOD_PRIMARY, "splitmenu.open" }, 0 }, 229 { 90, { "${keys.split.menu}", SDLK_j, KMOD_PRIMARY, "splitmenu.open" }, 0 },
229 { 91, { "${keys.split.next}", SDLK_TAB, KMOD_CTRL, "keyroot.next", }, 0 }, 230 { 91, { "${keys.split.next}", SDLK_TAB, KMOD_CTRL, "keyroot.next", }, 0 },
231 { 92, { "${keys.split.item} ${menu.split.merge}", '1', 0, "ui.split arg:0", }, noDirectTrigger_BindFlag },
232 { 93, { "${keys.split.item} ${menu.split.swap}", SDLK_x, 0, "ui.split swap:1", }, noDirectTrigger_BindFlag },
233 { 94, { "${keys.split.item} ${menu.split.horizontal}", '3', 0, "ui.split arg:3 axis:0", }, noDirectTrigger_BindFlag },
234 { 95, { "${keys.split.item} ${menu.split.horizontal} 1:2", SDLK_d, 0, "ui.split arg:1 axis:0", }, noDirectTrigger_BindFlag },
235 { 96, { "${keys.split.item} ${menu.split.horizontal} 2:1", SDLK_e, 0, "ui.split arg:2 axis:0", }, noDirectTrigger_BindFlag },
236 { 97, { "${keys.split.item} ${menu.split.vertical}", '2', 0, "ui.split arg:3 axis:1", }, noDirectTrigger_BindFlag },
237 { 98, { "${keys.split.item} ${menu.split.vertical} 1:2", SDLK_f, 0, "ui.split arg:1 axis:1", }, noDirectTrigger_BindFlag },
238 { 99, { "${keys.split.item} ${menu.split.vertical} 2:1", SDLK_r, 0, "ui.split arg:2 axis:1", }, noDirectTrigger_BindFlag },
230 { 100,{ "${keys.hoverurl}", '/', KMOD_PRIMARY, "prefs.hoverlink.toggle" }, 0 }, 239 { 100,{ "${keys.hoverurl}", '/', KMOD_PRIMARY, "prefs.hoverlink.toggle" }, 0 },
240 { 110,{ "${menu.save.downloads}", SDLK_s, KMOD_PRIMARY, "document.save" }, 0 },
231 /* The following cannot currently be changed (built-in duplicates). */ 241 /* The following cannot currently be changed (built-in duplicates). */
232#if defined (iPlatformApple) 242#if defined (iPlatformApple)
233 { 1002, { NULL, SDLK_LEFTBRACKET, KMOD_PRIMARY, "navigate.back" }, 0 }, 243 { 1002, { NULL, SDLK_LEFTBRACKET, KMOD_PRIMARY, "navigate.back" }, 0 },
@@ -301,7 +311,10 @@ static iBinding *findCommand_Keys_(iKeys *d, const char *command) {
301static void updateLookup_Keys_(iKeys *d) { 311static void updateLookup_Keys_(iKeys *d) {
302 clear_PtrSet(&d->lookup); 312 clear_PtrSet(&d->lookup);
303 iConstForEach(Array, i, &d->bindings) { 313 iConstForEach(Array, i, &d->bindings) {
304 insert_PtrSet(&d->lookup, i.value); 314 const iBinding *bind = i.value;
315 if (~bind->flags & noDirectTrigger_BindFlag) {
316 insert_PtrSet(&d->lookup, i.value);
317 }
305 } 318 }
306} 319}
307 320