From f3d7995bc25b8da9055f6a7ead404c3ad21df852 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 28 Oct 2025 09:47:19 +0100 Subject: [PATCH] feat(ui): add ListBox.SetSelected() this function will set the selected widget without triggering a onSelect event. --- game/ui/layouts/list_box.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/game/ui/layouts/list_box.go b/game/ui/layouts/list_box.go index 4a058cf..bcbcd08 100644 --- a/game/ui/layouts/list_box.go +++ b/game/ui/layouts/list_box.go @@ -42,12 +42,19 @@ func (lb ListBox) Entries() []ui.InputWidget { } func (lb *ListBox) Select(index int) { + if lb.SetSelected(index) { + lb.onSelect() + } +} + +func (lb *ListBox) SetSelected(index int) bool { if index >= 0 && index < len(lb.entries) { lb.entries[lb.selected].SetFocus(false) lb.selected = index lb.entries[lb.selected].SetFocus(true) - lb.onSelect() + return true } + return false } func (lb ListBox) Selected() ui.InputWidget {