diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2021-05-16 16:42:01 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2021-05-22 12:20:23 +0000 |
commit | a2bac25a6355d1ac59df34717a28c3c03728c885 (patch) | |
tree | e137382b8b0a1d55219492b12dc9ccba44942a11 | |
parent | 00b46267907073eb6d03cbbd3bd58e67b2a5475c (diff) | |
download | rockbox-a2bac25a6355d1ac59df34717a28c3c03728c885.tar.gz rockbox-a2bac25a6355d1ac59df34717a28c3c03728c885.zip |
Allow alternative keymap when keys are locked
To enable support targets must define HAVE_LOCKED_ACTIONS and then
handle the CONTEXT_LOCKED flag from get_context_mapping().
Change-Id: I92703b534e4a45b4ebbf9bf98af42df9b8ac3b1a
-rw-r--r-- | apps/action.c | 7 | ||||
-rw-r--r-- | apps/action.h | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/apps/action.c b/apps/action.c index 34897b938c..74f0a3d7df 100644 --- a/apps/action.c +++ b/apps/action.c | |||
@@ -586,6 +586,13 @@ static inline void action_code_lookup(action_last_t *last, action_cur_t *cur) | |||
586 | 586 | ||
587 | cur->is_prebutton = false; | 587 | cur->is_prebutton = false; |
588 | 588 | ||
589 | #ifdef HAVE_LOCKED_ACTIONS | ||
590 | /* This only applies to the first context, to allow locked contexts to | ||
591 | * specify a fall through to their non-locked version */ | ||
592 | if (is_keys_locked()) | ||
593 | context |= CONTEXT_LOCKED; | ||
594 | #endif | ||
595 | |||
589 | for(;;) | 596 | for(;;) |
590 | { | 597 | { |
591 | /* logf("context = %x",context); */ | 598 | /* logf("context = %x",context); */ |
diff --git a/apps/action.h b/apps/action.h index e4ad29504b..711ec58f71 100644 --- a/apps/action.h +++ b/apps/action.h | |||
@@ -32,6 +32,9 @@ | |||
32 | #define CONTEXT_CUSTOM 0x40000000 /* | this against anything to get your context number */ | 32 | #define CONTEXT_CUSTOM 0x40000000 /* | this against anything to get your context number */ |
33 | #define CONTEXT_CUSTOM2 0x20000000 /* as above */ | 33 | #define CONTEXT_CUSTOM2 0x20000000 /* as above */ |
34 | #define CONTEXT_PLUGIN 0x10000000 /* for plugins using get_custom_action */ | 34 | #define CONTEXT_PLUGIN 0x10000000 /* for plugins using get_custom_action */ |
35 | #ifdef HAVE_LOCKED_ACTIONS | ||
36 | #define CONTEXT_LOCKED 0x04000000 /* flag to use alternate keymap when screen is locked */ | ||
37 | #endif | ||
35 | 38 | ||
36 | #define LAST_ITEM_IN_LIST { CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE } | 39 | #define LAST_ITEM_IN_LIST { CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE } |
37 | #define LAST_ITEM_IN_LIST__NEXTLIST(a) { a, BUTTON_NONE, BUTTON_NONE } | 40 | #define LAST_ITEM_IN_LIST__NEXTLIST(a) { a, BUTTON_NONE, BUTTON_NONE } |