summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-05-16 16:42:01 +0100
committerAidan MacDonald <amachronic@protonmail.com>2021-05-22 12:20:23 +0000
commita2bac25a6355d1ac59df34717a28c3c03728c885 (patch)
treee137382b8b0a1d55219492b12dc9ccba44942a11
parent00b46267907073eb6d03cbbd3bd58e67b2a5475c (diff)
downloadrockbox-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.c7
-rw-r--r--apps/action.h3
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 }