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:
parent
88bff79523
commit
61700b56b6
13 changed files with 26 additions and 16 deletions
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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_
|
||||||
|
|
|
@ -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()) {
|
||||||
|
|
|
@ -737,7 +737,7 @@ void checkSwitches()
|
||||||
|
|
||||||
lcdRefresh();
|
lcdRefresh();
|
||||||
lcdSetContrast();
|
lcdSetContrast();
|
||||||
clearKeyEvents();
|
waitKeysReleased();
|
||||||
|
|
||||||
last_bad_switches = switches_states;
|
last_bad_switches = switches_states;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue