1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-27 02:05:16 +03:00

Register popup fix

This commit is contained in:
Bertrand Songis 2019-05-06 09:56:01 +02:00
parent 88bff79523
commit 61700b56b6
13 changed files with 26 additions and 16 deletions

View file

@ -498,6 +498,7 @@ void runPopupRegister(event_t event)
void startRegisterDialog(uint8_t module)
{
memclear(&reusableBuffer.moduleSetup.pxx2, sizeof(reusableBuffer.moduleSetup.pxx2));
reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition = ITEM_REGISTER_BUTTONS;
moduleState[module].mode = MODULE_MODE_REGISTER;
s_editMode = 0;
POPUP_INPUT("", runPopupRegister);

View file

@ -634,7 +634,7 @@ void menuRadioSetup(event_t event)
g_eeGeneral.stickMode = reusableBuffer.generalSettings.stickMode;
checkTHR();
resumePulses();
clearKeyEvents();
waitKeysReleased();
}
MOVE_CURSOR_FROM_HERE();
break;

View file

@ -502,7 +502,7 @@ void menuRadioSetup(event_t event)
g_eeGeneral.stickMode = reusableBuffer.generalSettings.stickMode;
checkTHR();
resumePulses();
clearKeyEvents();
waitKeysReleased();
}
break;
}

View file

@ -86,7 +86,7 @@ void readModelNotes()
strcpy(buf, TEXT_EXT);
}
clearKeyEvents();
waitKeysReleased();
event_t event = EVT_ENTRY;
while (event != EVT_KEY_FIRST(KEY_EXIT)) {
lcdRefreshWait();

View file

@ -61,7 +61,7 @@ void showAlertBox(const char * title, const char * text, const char * action, ui
AUDIO_ERROR_MESSAGE(sound);
lcdRefresh();
lcdSetContrast();
clearKeyEvents();
waitKeysReleased();
backlightOn();
checkBacklight();
}

View file

@ -440,8 +440,8 @@ bool menuRadioSetup(event_t event)
else {
g_eeGeneral.fai = editCheckBox(g_eeGeneral.fai, RADIO_SETUP_2ND_COLUMN, y, attr, event);
if (attr && checkIncDec_Ret) {
g_eeGeneral.fai = false;
POPUP_CONFIRMATION("FAI mode?");
g_eeGeneral.fai = false;
POPUP_CONFIRMATION("FAI mode?");
}
}
break;
@ -489,7 +489,7 @@ bool menuRadioSetup(event_t event)
g_eeGeneral.stickMode = reusableBuffer.generalSettings.stickMode;
checkTHR();
resumePulses();
clearKeyEvents();
waitKeysReleased();
}
break;
}

View file

@ -226,7 +226,7 @@ void showAlertBox(const char * title, const char * text, const char * action , u
AUDIO_ERROR_MESSAGE(sound);
lcdRefresh();
lcdSetContrast();
clearKeyEvents();
waitKeysReleased();
backlightOn();
checkBacklight();
}

View file

@ -91,6 +91,7 @@ enum
inline void POPUP_INFORMATION(const char * s)
{
killAllEvents();
warningText = s;
warningInfoText = nullptr;
warningType = WARNING_TYPE_INFO;
@ -99,6 +100,7 @@ enum
inline void POPUP_WARNING(const char * s)
{
killAllEvents();
warningText = s;
warningInfoText = nullptr;
warningType = WARNING_TYPE_ASTERISK;
@ -107,6 +109,7 @@ enum
inline void POPUP_CONFIRMATION(const char * s, PopupMenuHandler handler)
{
killAllEvents();
warningText = s;
warningInfoText = nullptr;
warningType = WARNING_TYPE_CONFIRM;
@ -116,6 +119,7 @@ enum
inline void POPUP_INPUT(const char * s, PopupFunc func)
{
killAllEvents();
warningText = s;
warningInfoText = nullptr;
warningType = WARNING_TYPE_INPUT;

View file

@ -110,7 +110,7 @@ void readModelNotes()
char *buf = strcat_modelname(&s_text_file[sizeof(MODELS_PATH)], g_eeGeneral.currModel);
strcpy(buf, TEXT_EXT);
clearKeyEvents();
waitKeysReleased();
event_t event = EVT_ENTRY;
while (event != EVT_KEY_BREAK(KEY_EXIT)) {
lcdRefreshWait();

View file

@ -169,7 +169,14 @@ void killEvents(event_t event)
}
}
bool clearKeyEvents()
void killAllEvents()
{
for (uint8_t key = 0; key < DIM(keys); key++) {
keys[key].killEvents();
}
}
bool waitKeysReleased()
{
#if defined(PCBSKY9X)
RTOS_WAIT_MS(200); // 200ms

View file

@ -113,11 +113,9 @@ inline void putEvent(event_t evt)
void pauseEvents(event_t event);
void killEvents(event_t event);
bool clearKeyEvents();
void killAllEvents();
bool waitKeysReleased();
event_t getEvent(bool trim=false);
bool keyDown();
#endif // _KEYS_H_

View file

@ -873,7 +873,7 @@ void checkAll()
readModelNotes();
}
if (!clearKeyEvents()) {
if (!waitKeysReleased()) {
showMessageBox(STR_KEYSTUCK);
tmr10ms_t tgtime = get_tmr10ms() + 500;
while (tgtime != get_tmr10ms()) {

View file

@ -737,7 +737,7 @@ void checkSwitches()
lcdRefresh();
lcdSetContrast();
clearKeyEvents();
waitKeysReleased();
last_bad_switches = switches_states;
}