summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client/qwaylandshellsurface_p.h2
-rw-r--r--src/client/qwaylandwindow.cpp3
-rw-r--r--src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp8
-rw-r--r--src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h1
-rw-r--r--src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp8
-rw-r--r--src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h1
6 files changed, 17 insertions, 6 deletions
diff --git a/src/client/qwaylandshellsurface_p.h b/src/client/qwaylandshellsurface_p.h
index 804056e54..f5f202d08 100644
--- a/src/client/qwaylandshellsurface_p.h
+++ b/src/client/qwaylandshellsurface_p.h
@@ -99,6 +99,8 @@ public:
virtual void propagateSizeHints() {}
+ virtual void setWindowGeometry(const QRect &rect) { Q_UNUSED(rect); }
+
private:
QWaylandWindow *m_window = nullptr;
friend class QWaylandWindow;
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index e8ff081c8..2301875c9 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -339,6 +339,9 @@ void QWaylandWindow::setGeometry(const QRect &rect)
QRect exposeGeometry(QPoint(), geometry().size());
if (exposeGeometry != mLastExposeGeometry)
sendExposeEvent(exposeGeometry);
+
+ if (mShellSurface)
+ mShellSurface->setWindowGeometry(QRect(QPoint(0, 0), window()->frameGeometry().size()));
}
void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset)
diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
index 6652c8768..60540fb0c 100644
--- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
@@ -94,9 +94,6 @@ void QWaylandXdgSurfaceV6::Toplevel::applyConfigure()
m_xdgSurface->m_window->resizeFromApplyConfigure(m_pending.size);
}
- QSize windowGeometrySize = m_xdgSurface->m_window->window()->frameGeometry().size();
- m_xdgSurface->set_window_geometry(0, 0, windowGeometrySize.width(), windowGeometrySize.height());
-
m_xdgSurface->setSizeHints();
m_applied = m_pending;
@@ -318,6 +315,11 @@ void QWaylandXdgSurfaceV6::propagateSizeHints()
m_window->commit();
}
+void QWaylandXdgSurfaceV6::setWindowGeometry(const QRect &rect)
+{
+ set_window_geometry(rect.x(), rect.y(), rect.width(), rect.height());
+}
+
void QWaylandXdgSurfaceV6::setSizeHints()
{
if (m_toplevel && m_window) {
diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h
index 62c13157e..f77a4d4ba 100644
--- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h
+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h
@@ -89,6 +89,7 @@ public:
void applyConfigure() override;
bool wantsDecorations() const override;
void propagateSizeHints() override;
+ void setWindowGeometry(const QRect &rect) override;
void setSizeHints();
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index fc515ca1b..78b7b45c8 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -104,9 +104,6 @@ void QWaylandXdgSurface::Toplevel::applyConfigure()
m_xdgSurface->m_window->resizeFromApplyConfigure(m_pending.size);
}
- QSize windowGeometrySize = m_xdgSurface->m_window->window()->frameGeometry().size();
- m_xdgSurface->set_window_geometry(0, 0, windowGeometrySize.width(), windowGeometrySize.height());
-
m_xdgSurface->setSizeHints();
m_applied = m_pending;
@@ -352,6 +349,11 @@ void QWaylandXdgSurface::propagateSizeHints()
m_window->commit();
}
+void QWaylandXdgSurface::setWindowGeometry(const QRect &rect)
+{
+ set_window_geometry(rect.x(), rect.y(), rect.width(), rect.height());
+}
+
void QWaylandXdgSurface::setSizeHints()
{
if (m_toplevel && m_window) {
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h
index c39ccde3b..8f8682a47 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h
@@ -93,6 +93,7 @@ public:
void applyConfigure() override;
bool wantsDecorations() const override;
void propagateSizeHints() override;
+ void setWindowGeometry(const QRect &rect) override;
void setSizeHints();