From 62deeb549bcf91cb01c2177373040b808da2459e Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 12 Feb 2025 13:56:59 -0500 Subject: [PATCH] fix: set the active tab in desktop mode when the window is focused --- src/app.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app.rs b/src/app.rs index 8baf493..f348e56 100644 --- a/src/app.rs +++ b/src/app.rs @@ -286,6 +286,8 @@ pub enum Message { DialogUpdate(DialogPage), DialogUpdateComplete(DialogPage), ExtractHere(Option), + #[cfg(all(feature = "desktop", feature = "wayland"))] + Focused(window::Id), Key(Modifiers, Key), LaunchUrl(String), MaybeExit, @@ -3516,6 +3518,15 @@ impl Application for App { self.size = Some(size); self.handle_overlap(); } + #[cfg(all(feature = "desktop", feature = "wayland"))] + Message::Focused(id) => { + if let Some(w) = self.windows.get(&id) { + match w { + WindowKind::Desktop(entity) => self.tab_model.activate(*entity), + _ => {} + }; + } + } } Task::none() @@ -4506,6 +4517,8 @@ impl Application for App { Some(Message::Modifiers(modifiers)) } Event::Window(WindowEvent::Unfocused) => Some(Message::WindowUnfocus), + #[cfg(all(feature = "desktop", feature = "wayland"))] + Event::Window(WindowEvent::Focused) => Some(Message::Focused(window_id)), Event::Window(WindowEvent::CloseRequested) => Some(Message::WindowClose), Event::Window(WindowEvent::Opened { position: _, size }) => { Some(Message::Size(size))