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) void startRegisterDialog(uint8_t module)
{ {
memclear(&reusableBuffer.moduleSetup.pxx2, sizeof(reusableBuffer.moduleSetup.pxx2)); memclear(&reusableBuffer.moduleSetup.pxx2, sizeof(reusableBuffer.moduleSetup.pxx2));
reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition = ITEM_REGISTER_BUTTONS;
moduleState[module].mode = MODULE_MODE_REGISTER; moduleState[module].mode = MODULE_MODE_REGISTER;
s_editMode = 0; s_editMode = 0;
POPUP_INPUT("", runPopupRegister); POPUP_INPUT("", runPopupRegister);

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -91,6 +91,7 @@ enum
inline void POPUP_INFORMATION(const char * s) inline void POPUP_INFORMATION(const char * s)
{ {
killAllEvents();
warningText = s; warningText = s;
warningInfoText = nullptr; warningInfoText = nullptr;
warningType = WARNING_TYPE_INFO; warningType = WARNING_TYPE_INFO;
@ -99,6 +100,7 @@ enum
inline void POPUP_WARNING(const char * s) inline void POPUP_WARNING(const char * s)
{ {
killAllEvents();
warningText = s; warningText = s;
warningInfoText = nullptr; warningInfoText = nullptr;
warningType = WARNING_TYPE_ASTERISK; warningType = WARNING_TYPE_ASTERISK;
@ -107,6 +109,7 @@ enum
inline void POPUP_CONFIRMATION(const char * s, PopupMenuHandler handler) inline void POPUP_CONFIRMATION(const char * s, PopupMenuHandler handler)
{ {
killAllEvents();
warningText = s; warningText = s;
warningInfoText = nullptr; warningInfoText = nullptr;
warningType = WARNING_TYPE_CONFIRM; warningType = WARNING_TYPE_CONFIRM;
@ -116,6 +119,7 @@ enum
inline void POPUP_INPUT(const char * s, PopupFunc func) inline void POPUP_INPUT(const char * s, PopupFunc func)
{ {
killAllEvents();
warningText = s; warningText = s;
warningInfoText = nullptr; warningInfoText = nullptr;
warningType = WARNING_TYPE_INPUT; 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); char *buf = strcat_modelname(&s_text_file[sizeof(MODELS_PATH)], g_eeGeneral.currModel);
strcpy(buf, TEXT_EXT); strcpy(buf, TEXT_EXT);
clearKeyEvents(); waitKeysReleased();
event_t event = EVT_ENTRY; event_t event = EVT_ENTRY;
while (event != EVT_KEY_BREAK(KEY_EXIT)) { while (event != EVT_KEY_BREAK(KEY_EXIT)) {
lcdRefreshWait(); 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) #if defined(PCBSKY9X)
RTOS_WAIT_MS(200); // 200ms RTOS_WAIT_MS(200); // 200ms

View file

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

View file

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

View file

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