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)
This commit is contained in:
SuperDude88
2026-05-08 01:09:25 -04:00
committed by GitHub
parent 313f03f5e5
commit 167a50c01d
+10 -1
View File
@@ -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);
}