From 787d11420d6e45bbfb18cfdc8f1bfdcb0bbd825b Mon Sep 17 00:00:00 2001 From: philmoz Date: Sat, 27 Jul 2024 20:15:36 +1000 Subject: [PATCH] Fix navigation issues. --- radio/src/gui/128x64/model_outputs.cpp | 6 ++++-- radio/src/gui/128x64/model_select.cpp | 5 ++++- radio/src/gui/128x64/model_special_functions.cpp | 3 ++- radio/src/gui/212x64/model_outputs.cpp | 9 ++++++--- radio/src/gui/212x64/model_select.cpp | 3 +++ radio/src/gui/212x64/model_special_functions.cpp | 3 ++- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/radio/src/gui/128x64/model_outputs.cpp b/radio/src/gui/128x64/model_outputs.cpp index ce755997d47..7a65f5a14fe 100644 --- a/radio/src/gui/128x64/model_outputs.cpp +++ b/radio/src/gui/128x64/model_outputs.cpp @@ -123,7 +123,8 @@ void menuModelLimitsOne(event_t event) case ITEM_OUTPUTONE_MIN: lcdDrawTextAlignedLeft(y, STR_MIN); if (GV_IS_GV_VALUE(ld->min, -GV_RANGELARGE, GV_RANGELARGE) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); ld->min = GVAR_MENU_ITEM(LIMITS_ONE_2ND_COLUMN, y, ld->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1, 0, event); break; } @@ -136,7 +137,8 @@ void menuModelLimitsOne(event_t event) case ITEM_OUTPUTONE_MAX: lcdDrawTextAlignedLeft(y, STR_MAX); if (GV_IS_GV_VALUE(ld->max, -GV_RANGELARGE, GV_RANGELARGE) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); ld->max = GVAR_MENU_ITEM(LIMITS_ONE_2ND_COLUMN, y, ld->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1, 0, event); break; } diff --git a/radio/src/gui/128x64/model_select.cpp b/radio/src/gui/128x64/model_select.cpp index 41d20d54415..28e527a7112 100644 --- a/radio/src/gui/128x64/model_select.cpp +++ b/radio/src/gui/128x64/model_select.cpp @@ -164,6 +164,7 @@ void menuModelSelect(event_t event) } break; + case EVT_KEY_LONG(KEY_ENTER): case EVT_KEY_BREAK(KEY_ENTER): s_editMode = 0; if (s_copyMode && (s_copyTgtOfs || s_copySrcRow>=0)) { @@ -197,8 +198,10 @@ void menuModelSelect(event_t event) s_copyMode = 0; event = EVT_ENTRY_UP; } - else if (event == EVT_KEY_BREAK(KEY_ENTER)) { + else if (event == EVT_KEY_BREAK(KEY_ENTER) || + event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); s_copyMode = 0; if (g_eeGeneral.currModel != sub) { if (modelExists(sub)) { diff --git a/radio/src/gui/128x64/model_special_functions.cpp b/radio/src/gui/128x64/model_special_functions.cpp index 8c4b5d84662..c355581ebb9 100644 --- a/radio/src/gui/128x64/model_special_functions.cpp +++ b/radio/src/gui/128x64/model_special_functions.cpp @@ -198,7 +198,8 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF else { drawSwitch(MODEL_SPECIAL_FUNC_1ST_COLUMN, y, CFN_SWITCH(cfn), attr | ((functionsContext->activeSwitches & ((MASK_CFN_TYPE)1 << k)) ? BOLD : 0)); if (active || AUTOSWITCH_ENTER_LONG()) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); CHECK_INCDEC_SWITCH(event, CFN_SWITCH(cfn), SWSRC_FIRST, SWSRC_LAST, eeFlags, isSwitchAvailableInCustomFunctions); } } diff --git a/radio/src/gui/212x64/model_outputs.cpp b/radio/src/gui/212x64/model_outputs.cpp index e869f3f03bc..d6da7deb385 100644 --- a/radio/src/gui/212x64/model_outputs.cpp +++ b/radio/src/gui/212x64/model_outputs.cpp @@ -162,7 +162,8 @@ void menuModelLimits(event_t event) case ITEM_LIMITS_OFFSET: if (GV_IS_GV_VALUE(ld->offset, -1000, 1000) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); ld->offset = GVAR_MENU_ITEM(LIMITS_OFFSET_POS, y, ld->offset, -1000, 1000, RIGHT|attr|PREC1, 0, event); break; } @@ -184,7 +185,8 @@ void menuModelLimits(event_t event) case ITEM_LIMITS_MIN: if (GV_IS_GV_VALUE(ld->min, -GV_RANGELARGE, GV_RANGELARGE) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); ld->min = GVAR_MENU_ITEM(LIMITS_MIN_POS, y, ld->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1|RIGHT, 0, event); break; } @@ -194,7 +196,8 @@ void menuModelLimits(event_t event) case ITEM_LIMITS_MAX: if (GV_IS_GV_VALUE(ld->max, -GV_RANGELARGE, GV_RANGELARGE) || (attr && event == EVT_KEY_LONG(KEY_ENTER))) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); ld->max = GVAR_MENU_ITEM(LIMITS_MAX_POS, y, ld->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1|RIGHT, 0, event); break; } diff --git a/radio/src/gui/212x64/model_select.cpp b/radio/src/gui/212x64/model_select.cpp index 928316edb90..55e21ea0334 100644 --- a/radio/src/gui/212x64/model_select.cpp +++ b/radio/src/gui/212x64/model_select.cpp @@ -160,6 +160,8 @@ void menuModelSelect(event_t event) } } break; + + case EVT_KEY_LONG(KEY_ENTER): case EVT_KEY_BREAK(KEY_ENTER): s_editMode = 0; if (s_copyMode && (s_copyTgtOfs || s_copySrcRow>=0)) { @@ -194,6 +196,7 @@ void menuModelSelect(event_t event) event = EVT_ENTRY_UP; } else if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); s_copyMode = 0; if (g_eeGeneral.currModel != sub) { if (modelExists(sub)) { diff --git a/radio/src/gui/212x64/model_special_functions.cpp b/radio/src/gui/212x64/model_special_functions.cpp index 6103f0553de..9ba6414fcf5 100644 --- a/radio/src/gui/212x64/model_special_functions.cpp +++ b/radio/src/gui/212x64/model_special_functions.cpp @@ -189,7 +189,8 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF if(CFN_SWITCH(cfn) == SWSRC_NONE) CFN_ACTIVE(cfn) = 0; // Disable new function by default drawSwitch(MODEL_SPECIAL_FUNC_1ST_COLUMN, y, CFN_SWITCH(cfn), attr | ((functionsContext->activeSwitches & ((MASK_CFN_TYPE)1 << k)) ? BOLD : 0)); if (active || AUTOSWITCH_ENTER_LONG()) { - killEvents(event); + if (event == EVT_KEY_LONG(KEY_ENTER)) + killEvents(event); CHECK_INCDEC_SWITCH(event, CFN_SWITCH(cfn), SWSRC_FIRST, SWSRC_LAST, eeFlags, isSwitchAvailableInCustomFunctions); } if (func == FUNC_OVERRIDE_CHANNEL && functions != g_model.customFn) {