diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2018-05-31 11:26:34 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2018-06-07 07:57:12 +0000 |
commit | 6b65b9da479974b88dc00dfe8ebb67f94eca9e35 (patch) | |
tree | b2a93f7e35126ab23989ea08bccd2107e3512068 /src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp | |
parent | 88241667a7c53e1d612f12ee801fe39474222b02 (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.cpp | 2 |
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; } |