diff --git a/src/plugins/platforms/wayland/qwaylandwindow.cpp b/src/plugins/platforms/wayland/qwaylandwindow.cpp index 581d353aaf0..23abf529e1f 100644 --- a/src/plugins/platforms/wayland/qwaylandwindow.cpp +++ b/src/plugins/platforms/wayland/qwaylandwindow.cpp @@ -431,6 +431,13 @@ void QWaylandWindow::setGeometry_helper(const QRect &rect) void QWaylandWindow::setGeometry(const QRect &r) { + auto rect = r; + if (fixedToplevelPositions && !QPlatformWindow::parent() && window()->type() != Qt::Popup + && window()->type() != Qt::ToolTip) { + rect.moveTo(screen()->geometry().topLeft()); + } + setGeometry_helper(rect); + if (mShellSurface) { if (!mInResizeFromApplyConfigure) { const QRect frameGeometry = r.marginsAdded(clientSideMargins()).marginsRemoved(windowContentMargins()); @@ -441,13 +448,6 @@ void QWaylandWindow::setGeometry(const QRect &r) } } - auto rect = r; - if (fixedToplevelPositions && !QPlatformWindow::parent() && window()->type() != Qt::Popup - && window()->type() != Qt::ToolTip) { - rect.moveTo(screen()->geometry().topLeft()); - } - setGeometry_helper(rect); - if (window()->isVisible() && rect.isValid()) { if (mWindowDecorationEnabled) mWindowDecoration->update();