diff options
Diffstat (limited to 'src/ui/lvgl_task.cpp')
| -rw-r--r-- | src/ui/lvgl_task.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ui/lvgl_task.cpp b/src/ui/lvgl_task.cpp index 2c4f01ca..817ed185 100644 --- a/src/ui/lvgl_task.cpp +++ b/src/ui/lvgl_task.cpp @@ -49,6 +49,8 @@ namespace ui { [[maybe_unused]] static const char* kTag = "ui_task"; +static auto group_focus_cb(lv_group_t *group) -> void; + UiTask::UiTask() {} UiTask::~UiTask() { @@ -75,6 +77,7 @@ auto UiTask::Main() -> void { if (input_ && current_screen_->group() != current_group) { current_group = current_screen_->group(); lv_indev_set_group(input_->registration(), current_group); + lv_group_set_focus_cb(current_group, &group_focus_cb); } if (current_screen_) { @@ -98,4 +101,11 @@ auto UiTask::Start() -> UiTask* { return ret; } +static auto group_focus_cb(lv_group_t *group) -> void { + // TODO(robin): we probably want to vary this, configure this, etc + events::System().Dispatch(system_fsm::HapticTrigger{ + .effect = drivers::Haptics::Effect::kMediumClick1_100Pct, + }); +} + } // namespace ui |
