Hyprland/src
John Mylchreest fa41c8229d
desktop/window: track explicit workspace assignments to prevent X11 configure overwrites (#12850)
* fix: track explicit workspace assignments to prevent X11 configure overwrites

Instead of only checking for special workspaces, track when workspaces are
explicitly assigned via window rules or user actions (movetoworkspace).
This prevents onX11ConfigureRequest from overwriting any explicit workspace
assignment based on window position.

Changes:
- Add m_workspaceExplicitlyAssigned flag to CWindow
- Set flag when window rules assign workspace
- Set flag when user moves window via dispatcher
- Check flag in onX11ConfigureRequest instead of just special workspace
- Add debug logging for explicit workspace assignments

* fix: simplify X11 configure request handling for special workspaces

X11 apps send configure requests with positions based on XWayland's
monitor layout, which could incorrectly move windows off special
workspaces.

Skip workspace reassignment when the window is on a special workspace
or staying on the same monitor, but always run z-order, fullscreen flag,
and damage logic since the configure request may include geometry changes.
2026-01-09 19:25:37 +01:00
..
config config: don't crash on permission with a config check 2026-01-08 12:19:22 +01:00
debug Desktop/history: Move history to desktop (#12676) 2025-12-20 22:16:13 +00:00
desktop desktop/window: track explicit workspace assignments to prevent X11 configure overwrites (#12850) 2026-01-09 19:25:37 +01:00
devices debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
helpers fix: handle fullscreen windows on special workspaces (#12851) 2026-01-08 22:27:00 +01:00
hyprerror hyprerror: fix horizontal overflow and damage box (#12719) 2026-01-02 20:10:47 +01:00
i18n i18n: add Danish translation (#12333) 2025-12-20 22:18:22 +00:00
init debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
layout master: fix placement with center_ignores_reserved (#12695) 2025-12-27 19:17:51 +01:00
managers animationMgr: avoid uaf in ::tick() if handleUpdate destroys AV 2026-01-08 22:22:58 +01:00
pch core: move all shared_ptrs from the STL to hyprutils (#9143) 2025-01-23 21:55:41 +01:00
plugins pluginsystem: fix crash when unloading plugin hyprctl commands (#12821) 2026-01-03 22:11:05 +01:00
protocols renderer/gl: add internal gl formats and reduce internal driver format conversions (#12879) 2026-01-07 19:53:42 +01:00
render fix: handle fullscreen windows on special workspaces (#12851) 2026-01-08 22:27:00 +01:00
xwayland debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
Compositor.cpp render/cm: various updates, remove old protocols (#12693) 2025-12-27 18:01:46 +01:00
Compositor.hpp render/cm: various updates, remove old protocols (#12693) 2025-12-27 18:01:46 +01:00
defines.hpp debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
includes.hpp core: drop the legacy renderer (#10408) 2025-05-15 10:13:24 +01:00
macros.hpp debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
main.cpp main: add watchdog-fd and safe-mode options to help message (#12922) 2026-01-08 17:50:11 +01:00
SharedDefs.hpp renderer: add eRenderStage::RENDER_POST_WALLPAPER (#11501) 2025-08-22 18:19:00 +01:00
version.h.in build: replace generateVersion.sh (#12110) 2025-10-23 20:50:32 +01:00