1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-07-01 18:51:04 +02:00

Merge pull request #605 from JakeStanger/fix/launcher-favourites

fix(launcher): favourites staying focused when closed in hyprland
This commit is contained in:
Jake Stanger 2024-05-22 09:59:40 +01:00 committed by GitHub
commit b0d3bfd6d9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -182,13 +182,22 @@ impl Module<gtk::Box> for LauncherModule {
}?; }?;
} }
ToplevelEvent::Update(info) => { ToplevelEvent::Update(info) => {
if let Some(item) = lock!(items).get_mut(&info.app_id) { // check if open, as updates can be sent as program closes
// if it's a focused favourite closing, it otherwise incorrectly re-focuses.
let is_open = if let Some(item) = lock!(items).get_mut(&info.app_id) {
item.set_window_focused(info.id, info.focused); item.set_window_focused(info.id, info.focused);
item.set_window_name(info.id, info.title.clone()); item.set_window_name(info.id, info.title.clone());
}
send_update(LauncherUpdate::Focus(info.app_id.clone(), info.focused)) item.open_state.is_open()
.await?; } else {
false
};
send_update(LauncherUpdate::Focus(
info.app_id.clone(),
is_open && info.focused,
))
.await?;
send_update(LauncherUpdate::Title( send_update(LauncherUpdate::Title(
info.app_id.clone(), info.app_id.clone(),
info.id, info.id,
@ -355,8 +364,7 @@ impl Module<gtk::Box> for LauncherModule {
button.set_open(true); button.set_open(true);
button.set_focused(win.open_state.is_focused()); button.set_focused(win.open_state.is_focused());
let mut menu_state = write_lock!(button.menu_state); write_lock!(button.menu_state).num_windows += 1;
menu_state.num_windows += 1;
} }
} }
LauncherUpdate::RemoveItem(app_id) => { LauncherUpdate::RemoveItem(app_id) => {