From 778ebe2a515b0c82db748dad5d33299dd0586df8 Mon Sep 17 00:00:00 2001 From: Yocraft-2000 <304616174+Yocraft-2000@users.noreply.github.com> Date: Sat, 22 Aug 2026 19:59:25 +0200 Subject: [PATCH 1/2] fix: pinned windows over fullscreen window while dragging --- src/view/view.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/view/view.cpp b/src/view/view.cpp index be22e47..6b07246 100644 --- a/src/view/view.cpp +++ b/src/view/view.cpp @@ -15,6 +15,7 @@ // clang-format off #include #include +#include "wlr-layer-shell-unstable-v1-protocol.h" #include "wlr.h" // clang-format on #include "workspace/scratchpad.h" @@ -487,6 +488,10 @@ namespace umbriel { m_dragOpacity = kDragOpacity; setFadeAlpha(m_fadeAlpha); m_effectiveOpacityCommitPending = false; + if (m_pinned) { + wlr_scene_node_place_above(&m_server->dragShadowTree()->node, &m_server->pinnedTree()->node); + wlr_scene_node_place_above(&m_server->dragTree()->node, &m_server->dragShadowTree()->node); + } wlr_scene_node_reparent(&m_sceneTree->node, m_server->dragTree()); reparentShadow(m_server->dragShadowTree()); setNodeEnabled(true); @@ -498,6 +503,10 @@ namespace umbriel { m_dragOpacity = 1.0F; m_effectiveOpacityCommitPending = false; setFadeAlpha(m_fadeAlpha); + wlr_scene_node_place_below( + &m_server->dragTree()->node, &m_server->shellLayerTree(ZWLR_LAYER_SHELL_V1_LAYER_TOP)->node + ); + wlr_scene_node_place_below(&m_server->dragShadowTree()->node, &m_server->dragTree()->node); if (ScratchpadManager* scratchpad = m_server->scratchpadManager(); scratchpad != nullptr && scratchpad->contains(this)) { scratchpad->restorePresentation(this); From e103218436afee720aab83c312cf5834ae187e1b Mon Sep 17 00:00:00 2001 From: Yocraft-2000 <304616174+Yocraft-2000@users.noreply.github.com> Date: Sun, 23 Aug 2026 14:52:38 +0200 Subject: [PATCH 2/2] fix: place dragTree below dragIconTree --- src/view/view.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/view/view.cpp b/src/view/view.cpp index 6b07246..e6a665d 100644 --- a/src/view/view.cpp +++ b/src/view/view.cpp @@ -15,7 +15,6 @@ // clang-format off #include #include -#include "wlr-layer-shell-unstable-v1-protocol.h" #include "wlr.h" // clang-format on #include "workspace/scratchpad.h" @@ -503,9 +502,7 @@ namespace umbriel { m_dragOpacity = 1.0F; m_effectiveOpacityCommitPending = false; setFadeAlpha(m_fadeAlpha); - wlr_scene_node_place_below( - &m_server->dragTree()->node, &m_server->shellLayerTree(ZWLR_LAYER_SHELL_V1_LAYER_TOP)->node - ); + wlr_scene_node_place_below(&m_server->dragTree()->node, &m_server->dragIconTree()->node); wlr_scene_node_place_below(&m_server->dragShadowTree()->node, &m_server->dragTree()->node); if (ScratchpadManager* scratchpad = m_server->scratchpadManager(); scratchpad != nullptr && scratchpad->contains(this)) {