Merge pull request #238 from JakeStanger/fix/launcher-focus

Launcher focus fixes
This commit is contained in:
Jake Stanger
2023-07-16 20:53:20 +01:00
committed by GitHub

View File

@@ -165,6 +165,7 @@ impl Module<gtk::Box> for LauncherModule {
match item { match item {
None => { None => {
let item: Item = handle.try_into()?; let item: Item = handle.try_into()?;
items.insert(info.app_id.clone(), item.clone()); items.insert(info.app_id.clone(), item.clone());
ItemOrWindow::Item(item) ItemOrWindow::Item(item)
@@ -358,9 +359,10 @@ impl Module<gtk::Box> for LauncherModule {
buttons.insert(item.app_id, button); buttons.insert(item.app_id, button);
} }
} }
LauncherUpdate::AddWindow(app_id, _) => { LauncherUpdate::AddWindow(app_id, win) => {
if let Some(button) = buttons.get(&app_id) { if let Some(button) = buttons.get(&app_id) {
button.set_open(true); button.set_open(true);
button.set_focused(win.open_state.is_focused());
let mut menu_state = write_lock!(button.menu_state); let mut menu_state = write_lock!(button.menu_state);
menu_state.num_windows += 1; menu_state.num_windows += 1;
@@ -381,8 +383,12 @@ impl Module<gtk::Box> for LauncherModule {
} }
} }
} }
LauncherUpdate::RemoveWindow(app_id, _) => { LauncherUpdate::RemoveWindow(app_id, win_id) => {
debug!("Removing window {win_id} with id {app_id}");
if let Some(button) = buttons.get(&app_id) { if let Some(button) = buttons.get(&app_id) {
button.set_focused(false);
let mut menu_state = write_lock!(button.menu_state); let mut menu_state = write_lock!(button.menu_state);
menu_state.num_windows -= 1; menu_state.num_windows -= 1;
} }