From 167a50c01d1e5c6f2a75c1abeeba11df91a3cb6a Mon Sep 17 00:00:00 2001 From: SuperDude88 <82904174+SuperDude88@users.noreply.github.com> Date: Fri, 8 May 2026 01:09:25 -0400 Subject: [PATCH] Deselect Sub-Menu On Focus Change (#710) - Unselect any previous items when focusing a new one This might be way over-inclusive so it should be scrutinized harshly (but fixes #672) --- src/dusk/ui/pane.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/dusk/ui/pane.cpp b/src/dusk/ui/pane.cpp index 053f59b37e..01eaf1194b 100644 --- a/src/dusk/ui/pane.cpp +++ b/src/dusk/ui/pane.cpp @@ -126,11 +126,20 @@ Component& Pane::register_control( } }); component.listen(component.root(), Rml::EventId::Focus, - [&component, &nextPane, callback = std::move(callback)](Rml::Event&) { + [this, &component, &nextPane, callback = std::move(callback)](Rml::Event&) { if (component.disabled()) { return; } nextPane.clear(); + + // If an item is already selected, deselect + for (const auto& child : mChildren) { + if (child->selected()) { + set_selected_item(-1); + break; + } + } + if (callback) { callback(nextPane); }