diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2016-12-01 18:00:05 +0100 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2017-07-21 12:17:53 +0000 |
commit | e459125d971d1a0c548a63a1286cb839936a8772 (patch) | |
tree | 98b1486aaaea0765b8252d4eb0687c6bbb65c257 /tests | |
parent | a9e10e2a7478bf3c68426a60fcc1862e6bd9f791 (diff) |
Compositor: Add support for xdg-shell-unstable-v6
This adds QML and C++ support for xdg-shell-unstable v6 on the compositor side.
A couple of things are still missing for complete support, but can be added
implemented later without breaking the API.
Task-number: QTBUG-56174
Change-Id: I08d7c05aa4f40f00377d92f2519d89ab416daaf4
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/compositor/compositor/tst_compositor.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/compositor/compositor/tst_compositor.cpp b/tests/auto/compositor/compositor/tst_compositor.cpp index 3d7d2dab9..52428eb4a 100644 --- a/tests/auto/compositor/compositor/tst_compositor.cpp +++ b/tests/auto/compositor/compositor/tst_compositor.cpp @@ -37,6 +37,7 @@ #include <QtGui/QScreen> #include <QtWaylandCompositor/QWaylandXdgShellV5> +#include <QtWaylandCompositor/private/qwaylandxdgshellv6_p.h> #include <QtWaylandCompositor/QWaylandIviApplication> #include <QtWaylandCompositor/QWaylandIviSurface> #include <QtWaylandCompositor/QWaylandSurface> @@ -75,6 +76,9 @@ private slots: void emitsErrorOnSameIviId(); void sendsIviConfigure(); void destroysIviSurfaces(); + + void convertsXdgEdgesToQtEdges(); + void xdgShellV6Positioner(); }; void tst_WaylandCompositor::init() { @@ -779,5 +783,49 @@ void tst_WaylandCompositor::destroysIviSurfaces() QTRY_VERIFY(destroySpy.count() == 1); } +void tst_WaylandCompositor::convertsXdgEdgesToQtEdges() +{ + const uint wlLeft = ZXDG_POSITIONER_V6_ANCHOR_LEFT; + QCOMPARE(QWaylandXdgShellV6Private::convertToEdges(wlLeft), Qt::LeftEdge); + + const uint wlRight = ZXDG_POSITIONER_V6_ANCHOR_RIGHT; + QCOMPARE(QWaylandXdgShellV6Private::convertToEdges(wlRight), Qt::RightEdge); + + const uint wlTop = ZXDG_POSITIONER_V6_ANCHOR_TOP; + QCOMPARE(QWaylandXdgShellV6Private::convertToEdges(wlTop), Qt::TopEdge); + + const uint wlBottom = ZXDG_POSITIONER_V6_ANCHOR_BOTTOM; + QCOMPARE(QWaylandXdgShellV6Private::convertToEdges(wlBottom), Qt::BottomEdge); + + QCOMPARE(QWaylandXdgShellV6Private::convertToEdges(wlBottom | wlLeft), Qt::Edges(Qt::BottomEdge | Qt::LeftEdge)); + QCOMPARE(QWaylandXdgShellV6Private::convertToEdges(wlTop | wlRight), Qt::Edges(Qt::TopEdge | Qt::RightEdge)); +} + +void tst_WaylandCompositor::xdgShellV6Positioner() +{ + QWaylandXdgPositionerV6Data p; + QVERIFY(!p.isComplete()); + + p.size = QSize(100, 50); + p.anchorRect = QRect(QPoint(1, 2), QSize(800, 600)); + QVERIFY(p.isComplete()); + + p.anchorEdges = Qt::TopEdge | Qt::LeftEdge; + p.gravityEdges = Qt::BottomEdge | Qt::RightEdge; + QCOMPARE(p.unconstrainedPosition(), QPoint(1, 2)); + + p.anchorEdges = Qt::RightEdge; + QCOMPARE(p.unconstrainedPosition(), QPoint(1 + 800, 2 + 600 / 2)); + + p.gravityEdges = Qt::BottomEdge; + QCOMPARE(p.unconstrainedPosition(), QPoint(1 + 800 - 100 / 2, 2 + 600 / 2)); + + p.gravityEdges = Qt::TopEdge; + QCOMPARE(p.unconstrainedPosition(), QPoint(1 + 800 - 100 / 2, 2 + 600 / 2 - 50)); + + p.offset = QPoint(4, 8); + QCOMPARE(p.unconstrainedPosition(), QPoint(1 + 800 - 100 / 2 + 4, 2 + 600 / 2 - 50 + 8)); +} + #include <tst_compositor.moc> QTEST_MAIN(tst_WaylandCompositor); |