summaryrefslogtreecommitdiff
path: root/apps/keymaps/keymap-nwz.c
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2023-03-17 23:43:39 +0000
committerAidan MacDonald <amachronic@protonmail.com>2023-03-18 17:47:19 +0000
commita0a59ab61019bc06d85f4db34a74a3b53f15f3b4 (patch)
treececfd61c4e08b9e30903abed7cb790b1cd36b855 /apps/keymaps/keymap-nwz.c
parent0c29d1788eae87eb1cba71a70b1facd6ff995eb2 (diff)
downloadrockbox-a0a59ab61019bc06d85f4db34a74a3b53f15f3b4.tar.gz
rockbox-a0a59ab61019bc06d85f4db34a74a3b53f15f3b4.zip
Fix locked context fallthrough
Enabling locked actions for all softlock targets accidentally broke keylock on touchscreens because the generic touchscreen keymap was missed. Trying to lookup CONTEXT_WPS|CONTEXT_LOCKED returned the mapping for CONTEXT_STD because the locked version wasn't explicitly handled. But on almost all cases, a context's keymap does not change when the screen is locked. It makes more sense to mask out the locked flag and only check for it where needed. Change-Id: I65cda2de82950d272d4394fd772286699e7c3779
Diffstat (limited to 'apps/keymaps/keymap-nwz.c')
-rw-r--r--apps/keymaps/keymap-nwz.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/apps/keymaps/keymap-nwz.c b/apps/keymaps/keymap-nwz.c
index 3901645eb2..36675566d3 100644
--- a/apps/keymaps/keymap-nwz.c
+++ b/apps/keymaps/keymap-nwz.c
@@ -357,17 +357,14 @@ static const struct button_mapping button_context_usb_hid_mode_mouse[] = {
357/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ 357/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
358const struct button_mapping* get_context_mapping(int context) 358const struct button_mapping* get_context_mapping(int context)
359{ 359{
360 switch (context) 360 switch (context & ~CONTEXT_LOCKED)
361 { 361 {
362 case CONTEXT_STD | CONTEXT_LOCKED:
363 case CONTEXT_STD: 362 case CONTEXT_STD:
364 return button_context_standard; 363 return button_context_standard;
365 case CONTEXT_MAINMENU | CONTEXT_LOCKED:
366 case CONTEXT_MAINMENU: 364 case CONTEXT_MAINMENU:
367 return button_context_tree; 365 return button_context_tree;
368 case CONTEXT_SETTINGS: 366 case CONTEXT_SETTINGS:
369 return button_context_settings; 367 return button_context_settings;
370 case CONTEXT_WPS | CONTEXT_LOCKED:
371 case CONTEXT_WPS: 368 case CONTEXT_WPS:
372 return button_context_wps; 369 return button_context_wps;
373 case CONTEXT_YESNOSCREEN: 370 case CONTEXT_YESNOSCREEN: