From fb764cd406dd64dcb4caf0df2dca8b621d80f58b Mon Sep 17 00:00:00 2001 From: Pier Luigi Fiorini Date: Mon, 14 Jan 2019 00:43:28 +0100 Subject: Track changes to window geometry for xdg-shell and xdg-shell-v6 Send window geometry every time the window is resized. [ChangeLog][QPA plugin] Send window geometry every time the window is resized. Change-Id: I8f3824c31455345be2b582e7d3a55077b47851b6 Reviewed-by: Johan Helsing --- src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp | 8 +++++--- src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h | 1 + src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp | 8 +++++--- src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h | 1 + 4 files changed, 12 insertions(+), 6 deletions(-) (limited to 'src/plugins/shellintegration') 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(); -- cgit v1.2.3