mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-02 19:02:00 +00:00
fix: GPS search clock stops with the receiver; L2 cursor survives accented keys; lighter, scrolling quick panel
- GPS: stop() resets the sky state so the 'Searching' timer does not run while the receiver is off; the status page shows it only when GPS is on. - L2 keyboard: put the FOCUSED state back after typing a key or picking a variant, so the cursor is drawn again after characters like a-ogonek. - Quick panel: drop the full-screen dim (a blend per frame), so the screen below stays interactive; tiles are one sideways-scrolling, snapping row; the brightness slider no longer animates and only updates the backlight when the value changes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VeBrxKyHHxWsmttVkUdBrj
This commit is contained in:
@@ -151,6 +151,13 @@ static void releaseShift(lv_obj_t* kbd) {
|
||||
static char s_var_txt[12][8];
|
||||
static const char* s_var_map[13];
|
||||
|
||||
// The cursor is only drawn while the field is FOCUSED, and the popup (a touch
|
||||
// on another object) can take that state away: put it back after a pick.
|
||||
static void keepCursor(lv_obj_t* ta) {
|
||||
lv_obj_add_state(ta, LV_STATE_FOCUSED);
|
||||
lv_obj_invalidate(ta);
|
||||
}
|
||||
|
||||
static void closePopup() {
|
||||
if (s_popup) { lv_obj_delete_async(s_popup); s_popup = nullptr; }
|
||||
}
|
||||
@@ -160,7 +167,10 @@ static void onPopupPick(lv_event_t* e) {
|
||||
uint32_t id = lv_buttonmatrix_get_selected_button(m);
|
||||
if (id == LV_BUTTONMATRIX_BUTTON_NONE || !s_popup_kbd) return;
|
||||
lv_obj_t* ta = lv_keyboard_get_textarea(s_popup_kbd);
|
||||
if (ta) lv_textarea_add_text(ta, lv_buttonmatrix_get_button_text(m, id));
|
||||
if (ta) {
|
||||
lv_textarea_add_text(ta, lv_buttonmatrix_get_button_text(m, id));
|
||||
keepCursor(ta);
|
||||
}
|
||||
releaseShift(s_popup_kbd);
|
||||
closePopup();
|
||||
}
|
||||
@@ -248,6 +258,7 @@ static void onEvent(lv_event_t* e) {
|
||||
return;
|
||||
}
|
||||
lv_keyboard_def_event_cb(e); // type the character / backspace / OK
|
||||
if (lv_obj_t* ta = lv_keyboard_get_textarea(kbd)) keepCursor(ta);
|
||||
if (strcmp(t, KB_BS) != 0) releaseShift(kbd);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user