diff options
Diffstat (limited to 'tests/auto/client/shared')
-rw-r--r-- | tests/auto/client/shared/xdgshell.cpp | 17 | ||||
-rw-r--r-- | tests/auto/client/shared/xdgshell.h | 12 |
2 files changed, 28 insertions, 1 deletions
diff --git a/tests/auto/client/shared/xdgshell.cpp b/tests/auto/client/shared/xdgshell.cpp index ebbcc2942..4cabd3d87 100644 --- a/tests/auto/client/shared/xdgshell.cpp +++ b/tests/auto/client/shared/xdgshell.cpp @@ -149,6 +149,7 @@ XdgToplevel::XdgToplevel(XdgSurface *xdgSurface, int id, int version) : QtWaylandServer::xdg_toplevel(xdgSurface->resource()->client(), id, version) , m_xdgSurface(xdgSurface) { + connect(surface(), &Surface::commit, this, [this] { m_committed = m_pending; }); } void XdgToplevel::sendConfigure(const QSize &size, const QVector<uint> &states) @@ -162,6 +163,22 @@ uint XdgToplevel::sendCompleteConfigure(const QSize &size, const QVector<uint> & return m_xdgSurface->sendConfigure(); } +void XdgToplevel::xdg_toplevel_set_max_size(Resource *resource, int32_t width, int32_t height) +{ + Q_UNUSED(resource); + QSize size(width, height); + QVERIFY(size.isValid()); + m_pending.maxSize = size; +} + +void XdgToplevel::xdg_toplevel_set_min_size(Resource *resource, int32_t width, int32_t height) +{ + Q_UNUSED(resource); + QSize size(width, height); + QVERIFY(size.isValid()); + m_pending.minSize = size; +} + XdgPopup::XdgPopup(XdgSurface *xdgSurface, int id, int version) : QtWaylandServer::xdg_popup(xdgSurface->resource()->client(), id, version) , m_xdgSurface(xdgSurface) diff --git a/tests/auto/client/shared/xdgshell.h b/tests/auto/client/shared/xdgshell.h index 3fcec7983..037de20d1 100644 --- a/tests/auto/client/shared/xdgshell.h +++ b/tests/auto/client/shared/xdgshell.h @@ -99,14 +99,24 @@ protected: void xdg_surface_ack_configure(Resource *resource, uint32_t serial) override; }; -class XdgToplevel : public QtWaylandServer::xdg_toplevel +class XdgToplevel : public QObject, public QtWaylandServer::xdg_toplevel { + Q_OBJECT public: explicit XdgToplevel(XdgSurface *xdgSurface, int id, int version = 1); void sendConfigure(const QSize &size = {0, 0}, const QVector<uint> &states = {}); uint sendCompleteConfigure(const QSize &size = {0, 0}, const QVector<uint> &states = {}); Surface *surface() { return m_xdgSurface->m_surface; } + XdgSurface *m_xdgSurface = nullptr; + struct DoubleBufferedState { + QSize minSize = {0, 0}; + QSize maxSize = {0, 0}; + } m_pending, m_committed; + +protected: + void xdg_toplevel_set_max_size(Resource *resource, int32_t width, int32_t height) override; + void xdg_toplevel_set_min_size(Resource *resource, int32_t width, int32_t height) override; }; class XdgPopup : public QtWaylandServer::xdg_popup |