gardesk/garchomp / f2a02ec

Browse files

fix multi-monitor: render all mapped windows instead of filtering by single workspace

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
f2a02eceaa28517fcb4712b1a1af1d4322eb5767
Parents
32f6670
Tree
1b69378

1 changed file

StatusFile+-
M garchomp/src/compositor/mod.rs 4 15
garchomp/src/compositor/mod.rsmodified
@@ -924,22 +924,11 @@ impl Compositor {
924
         for window_id in stacking_order {
924
         for window_id in stacking_order {
925
             if let Some(w) = self.windows.get(&window_id) {
925
             if let Some(w) = self.windows.get(&window_id) {
926
                 if w.mapped && w.pixmap.is_some() {
926
                 if w.mapped && w.pixmap.is_some() {
927
-                    // Check workspace visibility - only render windows on current workspace,
927
+                    // Render all mapped windows - the WM manages visibility via map/unmap.
928
-                    // windows in transition, or windows not assigned to any workspace (docks, etc.)
928
+                    // With per-monitor workspaces, multiple workspaces are visible
929
+                    // simultaneously, so we can't filter by a single "current" workspace.
930
+                    // Workspace info is still used for transition animation offsets below.
929
                     let window_ws = self.workspaces.get_window_workspace(w.id);
931
                     let window_ws = self.workspaces.get_window_workspace(w.id);
930
-                    let should_render = match window_ws {
931
-                        None => true, // Not tracked by workspace (override-redirect, docks)
932
-                        Some(ws) => {
933
-                            ws == self.workspaces.current ||
934
-                            self.workspaces.transition.as_ref().map_or(false, |t| {
935
-                                ws == t.from || ws == t.to
936
-                            })
937
-                        }
938
-                    };
939
-
940
-                    if !should_render {
941
-                        continue;
942
-                    }
943
 
932
 
944
                     let focused = self.is_window_focused(w.id);
933
                     let focused = self.is_window_focused(w.id);
945
                     // Get Lua animation transform
934
                     // Get Lua animation transform