From 19b9067096f64b3ed822c96e97c0f0b916dfca5f Mon Sep 17 00:00:00 2001 From: Yuki Joou Date: Mon, 16 Sep 2024 15:49:17 +0200 Subject: [PATCH] window: Handle per-output VDs in move-resizes --- src/window.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/window.cpp b/src/window.cpp index c9965e7530..d3274c151f 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1248,6 +1248,14 @@ void Window::finishInteractiveMoveResize(bool cancel) setGeometryRestore(m_interactiveMoveResize.initialGeometryRestore); } } else if (moveResizeOutput() != interactiveMoveResizeStartOutput()) { + // TODO: Is there a better place for this? + VirtualDesktop *newOutputDesktop = VirtualDesktopManager::self()->currentDesktop(moveResizeOutput()); + VirtualDesktop *oldOutputDesktop = VirtualDesktopManager::self()->currentDesktop(interactiveMoveResizeStartOutput()); + if (newOutputDesktop != oldOutputDesktop) { + enterDesktop(newOutputDesktop); + leaveDesktop(oldOutputDesktop); + } + sendToOutput(moveResizeOutput()); // checks rule validity if (isRequestedFullScreen() || requestedMaximizeMode() != MaximizeRestore) { checkWorkspacePosition();