fix auto select

This commit is contained in:
Alexander Mohr 2025-07-13 12:22:36 +02:00
parent acfaad5f06
commit 7cc910d3af

View file

@ -1269,20 +1269,25 @@ where
select_visible_child(&*menu_rows, &ui.main_box, &ui.scroll, &ChildPosition::Front); select_visible_child(&*menu_rows, &ui.main_box, &ui.scroll, &ChildPosition::Front);
if meta.config.read().unwrap().auto_select_on_search() { if meta.config.read().unwrap().auto_select_on_search() {
let visible_items = menu_rows let visible_items: Vec<_> = menu_rows.iter().filter(|(_, menu)| menu.visible).collect();
.iter()
.filter(|(_, menu)| menu.visible) let item = if visible_items.len() == 1 {
.collect::<Vec<_>>(); Some(visible_items[0].1.clone())
if visible_items.len() == 1 { } else {
if let Err(e) = None
handle_selected_item(ui, meta, None, Some(visible_items[0].1.clone()), None) };
{
drop(menu_rows);
if let Some(item) = item {
if let Err(e) = handle_selected_item(ui, meta, None, Some(item), None) {
log::error!("failed to handle selected item {e}"); log::error!("failed to handle selected item {e}");
} }
} }
} else {
drop(menu_rows);
} }
drop(menu_rows);
if meta.config.read().unwrap().dynamic_lines() { if meta.config.read().unwrap().dynamic_lines() {
if let Some(geometry) = get_monitor_geometry(ui.window.surface().as_ref()) { if let Some(geometry) = get_monitor_geometry(ui.window.surface().as_ref()) {
let height = let height =