window: Handle per-output VDs in move-resizes

This commit is contained in:
Yuki Joou 2024-09-16 15:49:17 +02:00
parent e97154ccd7
commit 19b9067096

View file

@ -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();