summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2016-12-01 18:00:05 +0100
committerJohan Helsing <johan.helsing@qt.io>2017-07-21 12:17:53 +0000
commite459125d971d1a0c548a63a1286cb839936a8772 (patch)
tree98b1486aaaea0765b8252d4eb0687c6bbb65c257 /tests
parenta9e10e2a7478bf3c68426a60fcc1862e6bd9f791 (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.cpp48
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);