diff --git a/src/shell/focus/mod.rs b/src/shell/focus/mod.rs index bd53c4fa..60eabcde 100644 --- a/src/shell/focus/mod.rs +++ b/src/shell/focus/mod.rs @@ -147,12 +147,12 @@ impl Shell { for output in self.outputs.iter() { let workspace = self.workspaces.active_mut(output); for focused in focused_windows.iter() { - if workspace.floating_layer.mapped().any(|m| m == focused) { - if let CosmicSurface::X11(window) = focused.active_window() { - if let Some(xwm) = xwm.as_mut().and_then(|state| state.xwm.as_mut()) { - let _ = xwm.raise_window(&window); - } + if let CosmicSurface::X11(window) = focused.active_window() { + if let Some(xwm) = xwm.as_mut().and_then(|state| state.xwm.as_mut()) { + let _ = xwm.raise_window(&window); } + } + if workspace.floating_layer.mapped().any(|m| m == focused) { workspace.floating_layer.space.raise_element(focused, true); } } diff --git a/src/shell/mod.rs b/src/shell/mod.rs index f08e9081..c8b81d6e 100644 --- a/src/shell/mod.rs +++ b/src/shell/mod.rs @@ -1207,14 +1207,14 @@ impl Shell { .map(mapped.clone(), &seat, focus_stack.iter(), None); } - if let CosmicSurface::X11(_) = window { + if let CosmicSurface::X11(surface) = window { if let Some(xwm) = state .common .xwayland_state .as_mut() .and_then(|state| state.xwm.as_mut()) { - if let Err(err) = xwm.update_stacking_order_downwards(workspace.mapped()) { + if let Err(err) = xwm.raise_window(&surface) { warn!(?err, "Failed to update Xwayland stacking order."); } }