diff --git a/radio/src/thirdparty/libopenui/src/form.h b/radio/src/thirdparty/libopenui/src/form.h index d2b989472..4105a9832 100644 --- a/radio/src/thirdparty/libopenui/src/form.h +++ b/radio/src/thirdparty/libopenui/src/form.h @@ -59,6 +59,7 @@ class FormField: public Window { virtual void setEditMode(bool newEditMode) { editMode = newEditMode; + invalidate(); } void enable(bool value = true) diff --git a/radio/src/thirdparty/libopenui/src/numberedit.cpp b/radio/src/thirdparty/libopenui/src/numberedit.cpp index 6795121f5..b1d77e217 100644 --- a/radio/src/thirdparty/libopenui/src/numberedit.cpp +++ b/radio/src/thirdparty/libopenui/src/numberedit.cpp @@ -125,18 +125,23 @@ void NumberEdit::onEvent(event_t event) FormField::onEvent(event); } -#if defined(SOFTWARE_KEYBOARD) +#if defined(HARDWARE_TOUCH) bool NumberEdit::onTouchEnd(coord_t, coord_t) { if (!enabled) { return true; } - if (!hasFocus()) { + if (hasFocus()) { + setEditMode(true); + } + else { setFocus(SET_FOCUS_DEFAULT); } +#if defined(SOFTWARE_KEYBOARD) NumberKeyboard::show(this); +#endif return true; } diff --git a/radio/src/thirdparty/libopenui/src/numberedit.h b/radio/src/thirdparty/libopenui/src/numberedit.h index 55ef21c27..299b3073e 100644 --- a/radio/src/thirdparty/libopenui/src/numberedit.h +++ b/radio/src/thirdparty/libopenui/src/numberedit.h @@ -63,7 +63,7 @@ class NumberEdit : public BaseNumberEdit { void onEvent(event_t event) override; -#if defined(SOFTWARE_KEYBOARD) +#if defined(HARDWARE_TOUCH) bool onTouchEnd(coord_t x, coord_t y) override; #endif diff --git a/radio/src/thirdparty/libopenui/src/textedit.h b/radio/src/thirdparty/libopenui/src/textedit.h index 3688292b1..4bbc022ba 100644 --- a/radio/src/thirdparty/libopenui/src/textedit.h +++ b/radio/src/thirdparty/libopenui/src/textedit.h @@ -106,11 +106,10 @@ class TextEdit : public FormField { return 'Z'; else if (c == '0') return 'z'; - else if (c == ' ') + else if (c == ' ' || c == 0) return '>'; else return c - 1; } - };