Various improvements (#614)

- Auto-select widgets in Launcher and apps with toolbars on devices without touch.
- Improved USB HID input reliability, cleanup
- Updated PSRAM settings to improve boot stability on supported devices.
- Prevented duplicate Wi-Fi event subscriptions during screen rebuilds.
- Updated docs
- Fixes in WifiManage and WifiConnect
- Reduced main task stack size
- Moved USB HID stack size to PSRAM when available
- app_manager_find_manifest() now returns a copy instead of a pointer
This commit is contained in:
Ken Van Hoeylandt
2026-08-13 20:30:47 +02:00
committed by GitHub
parent cc8be3faef
commit d6b1d15e56
53 changed files with 603 additions and 1089 deletions
@@ -0,0 +1,13 @@
#pragma once
#include <lvgl.h>
#ifdef __cplusplus
extern "C" {
#endif
bool lvgl_has_indev_of_type(lv_indev_type_t type);
#ifdef __cplusplus
}
#endif
@@ -4,7 +4,6 @@
extern "C" {
#endif
void lvgl_keyboard_on_start_lvgl();
void lvgl_keyboard_on_stop_lvgl();
@@ -0,0 +1,15 @@
#include <lvgl/devices/indev_private.h>
extern "C" {
bool lvgl_has_indev_of_type(lv_indev_type_t type) {
for (lv_indev_t* indev = lv_indev_get_next(nullptr); indev != nullptr; indev = lv_indev_get_next(indev)) {
lv_indev_type_t to_check = lv_indev_get_type(indev);
if (to_check == type) {
return true;
}
}
return false;
}
} // extern "C"
@@ -2,9 +2,10 @@
#define LV_USE_PRIVATE_API 1 // For actual lv_obj_t declaration
#include <lvgl/widgets/toolbar.h>
#include <lvgl/widgets/spinner.h>
#include <lvgl/fonts.h>
#include <lvgl/lvgl.h>
#include <lvgl/widgets/spinner.h>
#include <tactility/check.h>
#include <tactility/drivers/pointer.h>
@@ -160,7 +161,9 @@ lv_obj_t* lvgl_toolbar_create(lv_obj_t* parent, const char* title) {
// In that scenario we want to automatically have the close button selected so the user doesn't have to press the widget selection
// an extra time for every screen.
if (!device_has_active_by_type(&POINTER_TYPE)) {
lv_obj_update_layout(obj); // Resolve flex layout first, so focus/state invalidate against final coords
lv_group_focus_obj(toolbar->close_button);
lv_obj_add_state(toolbar->close_button, LV_STATE_FOCUS_KEY);
}
return obj;