From a0a59ab61019bc06d85f4db34a74a3b53f15f3b4 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Fri, 17 Mar 2023 23:43:39 +0000 Subject: 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 --- apps/keymaps/keymap-agptekrocker.c | 5 +---- apps/keymaps/keymap-clip.c | 5 +---- apps/keymaps/keymap-erosq.c | 5 +---- apps/keymaps/keymap-fiiom3k.c | 8 +++----- apps/keymaps/keymap-fiiom3klinux.c | 5 +---- apps/keymaps/keymap-fuzeplus.c | 5 +---- apps/keymaps/keymap-ma.c | 6 ++---- apps/keymaps/keymap-nwz.c | 5 +---- apps/keymaps/keymap-ondavx777.c | 5 +---- apps/keymaps/keymap-rk27xx-generic.c | 5 +---- apps/keymaps/keymap-shanlingq1.c | 5 +---- apps/keymaps/keymap-touchscreen.c | 2 +- apps/keymaps/keymap-xduoox20.c | 5 +---- apps/keymaps/keymap-xduoox3ii.c | 5 +---- apps/keymaps/keymap-ypr0.c | 5 +---- apps/keymaps/keymap-ypr1.c | 5 +---- apps/keymaps/keymap-zenxfi2.c | 5 +---- 17 files changed, 20 insertions(+), 66 deletions(-) (limited to 'apps') diff --git a/apps/keymaps/keymap-agptekrocker.c b/apps/keymaps/keymap-agptekrocker.c index 158de8d3c8..5ca834ab51 100644 --- a/apps/keymaps/keymap-agptekrocker.c +++ b/apps/keymaps/keymap-agptekrocker.c @@ -221,17 +221,14 @@ static const struct button_mapping button_context_bmark[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; case CONTEXT_TREE: diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c index cf1f283d24..494c9a734c 100644 --- a/apps/keymaps/keymap-clip.c +++ b/apps/keymaps/keymap-clip.c @@ -399,13 +399,11 @@ static const struct button_mapping button_context_usb_hid_mode_mouse[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; @@ -416,7 +414,6 @@ const struct button_mapping* get_context_mapping(int context) return button_context_listtree_scroll_without_combo; else return button_context_listtree_scroll_with_combo; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; case CONTEXT_CUSTOM|CONTEXT_TREE: diff --git a/apps/keymaps/keymap-erosq.c b/apps/keymaps/keymap-erosq.c index 7e2643a318..054da96201 100644 --- a/apps/keymaps/keymap-erosq.c +++ b/apps/keymaps/keymap-erosq.c @@ -194,17 +194,14 @@ static const struct button_mapping button_context_bmark[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; diff --git a/apps/keymaps/keymap-fiiom3k.c b/apps/keymaps/keymap-fiiom3k.c index 8b9cce2493..01fe3a689c 100644 --- a/apps/keymaps/keymap-fiiom3k.c +++ b/apps/keymaps/keymap-fiiom3k.c @@ -324,18 +324,16 @@ static const struct button_mapping button_context_usb_hid_mode_browser[] = { const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { default: - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: - return button_context_wps_locked; case CONTEXT_WPS: + if (context & CONTEXT_LOCKED) + return button_context_wps_locked; return button_context_wps; case CONTEXT_TREE: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: if (global_settings.hold_lr_for_scroll_in_list) return button_context_tree_scroll_lr; diff --git a/apps/keymaps/keymap-fiiom3klinux.c b/apps/keymaps/keymap-fiiom3klinux.c index 98aef7be41..79a7687501 100644 --- a/apps/keymaps/keymap-fiiom3klinux.c +++ b/apps/keymaps/keymap-fiiom3klinux.c @@ -192,11 +192,10 @@ static const struct button_mapping button_context_yesnoscreen[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { case CONTEXT_LIST: return button_context_list; - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; case CONTEXT_BOOKMARKSCREEN: @@ -215,10 +214,8 @@ const struct button_mapping* get_context_mapping(int context) case CONTEXT_SETTINGS_RECTRIGGER: return button_context_settings_vol_is_inc; case CONTEXT_TREE: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-fuzeplus.c b/apps/keymaps/keymap-fuzeplus.c index 01032ddf07..052f11085e 100644 --- a/apps/keymaps/keymap-fuzeplus.c +++ b/apps/keymaps/keymap-fuzeplus.c @@ -407,17 +407,14 @@ static const struct button_mapping button_context_usb_hid_mode_mouse[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; case CONTEXT_SETTINGS: return button_context_settings; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-ma.c b/apps/keymaps/keymap-ma.c index 84d8edd7c4..aca006d071 100644 --- a/apps/keymaps/keymap-ma.c +++ b/apps/keymaps/keymap-ma.c @@ -188,11 +188,10 @@ static const struct button_mapping button_context_yesnoscreen[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { /* anything that uses button_context_standard */ case CONTEXT_LIST: - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: default: return button_context_standard; @@ -221,14 +220,13 @@ const struct button_mapping* get_context_mapping(int context) return button_context_settings_r_is_inc; case CONTEXT_TREE: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: if (global_settings.hold_lr_for_scroll_in_list) return button_context_tree_scroll_lr; /* else fall through to CONTEXT_TREE|CONTEXT_CUSTOM */ case CONTEXT_TREE|CONTEXT_CUSTOM: return button_context_tree; - case CONTEXT_WPS | CONTEXT_LOCKED: + case CONTEXT_WPS: return button_context_wps; 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[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; case CONTEXT_SETTINGS: return button_context_settings; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-ondavx777.c b/apps/keymaps/keymap-ondavx777.c index 468ad4b354..c4b68f1ef2 100644 --- a/apps/keymaps/keymap-ondavx777.c +++ b/apps/keymaps/keymap-ondavx777.c @@ -127,18 +127,15 @@ static const struct button_mapping button_context_usb_hid[] = { const struct button_mapping* target_get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_TREE: if (global_settings.hold_lr_for_scroll_in_list) diff --git a/apps/keymaps/keymap-rk27xx-generic.c b/apps/keymaps/keymap-rk27xx-generic.c index 5be8762af3..4c07384810 100644 --- a/apps/keymaps/keymap-rk27xx-generic.c +++ b/apps/keymaps/keymap-rk27xx-generic.c @@ -164,12 +164,10 @@ static const struct button_mapping button_context_usb_hid_mode_mouse[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; #ifdef CONFIG_TUNER @@ -192,7 +190,6 @@ const struct button_mapping* get_context_mapping(int context) #endif case CONTEXT_TREE: case CONTEXT_LIST: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_SETTINGS: diff --git a/apps/keymaps/keymap-shanlingq1.c b/apps/keymaps/keymap-shanlingq1.c index 2708266d18..f8fefe5ff3 100644 --- a/apps/keymaps/keymap-shanlingq1.c +++ b/apps/keymaps/keymap-shanlingq1.c @@ -69,18 +69,15 @@ static const struct button_mapping button_context_yesno[] = { const struct button_mapping* target_get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { default: - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_TREE: case CONTEXT_CUSTOM|CONTEXT_TREE: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_BOOKMARKSCREEN: case CONTEXT_LIST: diff --git a/apps/keymaps/keymap-touchscreen.c b/apps/keymaps/keymap-touchscreen.c index 555cf42f79..07710be78d 100644 --- a/apps/keymaps/keymap-touchscreen.c +++ b/apps/keymaps/keymap-touchscreen.c @@ -383,7 +383,7 @@ const struct button_mapping* get_context_mapping(int context) return target_get_context_mapping(context & ~CONTEXT_CUSTOM2); } - switch (context) + switch (context & ~CONTEXT_LOCKED) { case CONTEXT_STD: return button_context_standard; diff --git a/apps/keymaps/keymap-xduoox20.c b/apps/keymaps/keymap-xduoox20.c index 04d57949a1..fa4076e27d 100644 --- a/apps/keymaps/keymap-xduoox20.c +++ b/apps/keymaps/keymap-xduoox20.c @@ -184,11 +184,10 @@ static const struct button_mapping button_context_yesnoscreen[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { case CONTEXT_LIST: return button_context_list; - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; case CONTEXT_BOOKMARKSCREEN: @@ -207,10 +206,8 @@ const struct button_mapping* get_context_mapping(int context) case CONTEXT_SETTINGS_RECTRIGGER: return button_context_settings_vol_is_inc; case CONTEXT_TREE: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-xduoox3ii.c b/apps/keymaps/keymap-xduoox3ii.c index b25eacd732..c8724ec1f0 100644 --- a/apps/keymaps/keymap-xduoox3ii.c +++ b/apps/keymaps/keymap-xduoox3ii.c @@ -184,11 +184,10 @@ static const struct button_mapping button_context_yesnoscreen[] = { /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { case CONTEXT_LIST: return button_context_list; - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; case CONTEXT_BOOKMARKSCREEN: @@ -207,10 +206,8 @@ const struct button_mapping* get_context_mapping(int context) case CONTEXT_SETTINGS_RECTRIGGER: return button_context_settings_vol_is_inc; case CONTEXT_TREE: - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-ypr0.c b/apps/keymaps/keymap-ypr0.c index e6d3bf8868..6e493ddf61 100644 --- a/apps/keymaps/keymap-ypr0.c +++ b/apps/keymaps/keymap-ypr0.c @@ -255,18 +255,15 @@ static const struct button_mapping button_context_radio[] = { const struct button_mapping* get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; diff --git a/apps/keymaps/keymap-ypr1.c b/apps/keymaps/keymap-ypr1.c index 0f991a881d..67f42f07c6 100644 --- a/apps/keymaps/keymap-ypr1.c +++ b/apps/keymaps/keymap-ypr1.c @@ -132,18 +132,15 @@ static const struct button_mapping button_context_radio[] = { const struct button_mapping* target_get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_CUSTOM|CONTEXT_TREE: return button_context_tree; diff --git a/apps/keymaps/keymap-zenxfi2.c b/apps/keymaps/keymap-zenxfi2.c index 43e65ce5d7..ba25592246 100644 --- a/apps/keymaps/keymap-zenxfi2.c +++ b/apps/keymaps/keymap-zenxfi2.c @@ -137,18 +137,15 @@ static const struct button_mapping button_context_radio[] = { const struct button_mapping* target_get_context_mapping(int context) { - switch (context) + switch (context & ~CONTEXT_LOCKED) { - case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; - case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; - case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_TREE: if (global_settings.hold_lr_for_scroll_in_list) -- cgit v1.2.3