summaryrefslogtreecommitdiffstats
path: root/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2018-05-31 11:26:34 +0200
committerJohan Helsing <johan.helsing@qt.io>2018-06-07 07:57:12 +0000
commit6b65b9da479974b88dc00dfe8ebb67f94eca9e35 (patch)
treeb2a93f7e35126ab23989ea08bccd2107e3512068 /src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
parent88241667a7c53e1d612f12ee801fe39474222b02 (diff)
Client: Set window geometry for xdg-shell v6 and stable
Eventhough, according to the protocol spec, it should work perfectly fine without setting the geometry, gnome-shell 3.28.2 chokes on it and applications get stuck in the upper right corner and can't be moved. Qt seems to be the only toolkit left that doesn't set the window geometry, so let's just do it the simple, though somewhat incorrect, way. The downside of this patch, is that the unset window geometry used to include subsurfaces that extended outside the parent surface, but here we just set it to the frameGeometry of the window. Task-number: QTBUG-68575 Change-Id: I8a9d029ff6d57bd33294658e3bfd69ff08cd38c1 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp')
-rw-r--r--src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
index 550575f11..d986bc69d 100644
--- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
@@ -86,6 +86,8 @@ void QWaylandXdgSurfaceV6::Toplevel::applyConfigure()
m_xdgSurface->m_window->handleWindowStatesChanged(statesWithoutActive);
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_applied = m_pending;
}