forked from len0rd/rockbox
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
This commit is contained in:
parent
0c29d1788e
commit
a0a59ab610
17 changed files with 20 additions and 66 deletions
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue