From 9fbaf51eccf668a938f4c9a466cc4595195920f3 Mon Sep 17 00:00:00 2001 From: Mikko Levonmaa Date: Mon, 31 Mar 2014 11:25:33 -0700 Subject: Support configurable capabilities for input devices Change-Id: I070f7daec8fb13a7db838b3d0c67e8aebc790a6c Reviewed-by: Giulio Camuffo --- tests/auto/compositor/compositor.pro | 12 +++++++++++- tests/auto/compositor/tst_compositor.cpp | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) (limited to 'tests/auto') diff --git a/tests/auto/compositor/compositor.pro b/tests/auto/compositor/compositor.pro index 1da1ba25c..d049b17a0 100644 --- a/tests/auto/compositor/compositor.pro +++ b/tests/auto/compositor/compositor.pro @@ -2,7 +2,7 @@ CONFIG += testcase link_pkgconfig TARGET = tst_compositor QT += testlib -QT += core-private gui-private compositor +QT += core-private gui-private compositor compositor-private !contains(QT_CONFIG, no-pkg-config) { PKGCONFIG += wayland-client wayland-server @@ -10,5 +10,15 @@ QT += core-private gui-private compositor LIBS += -lwayland-client -lwayland-server } +config_xkbcommon { + !contains(QT_CONFIG, no-pkg-config) { + PKGCONFIG_PRIVATE += xkbcommon + } else { + LIBS_PRIVATE += -lxkbcommon + } +} else { + DEFINES += QT_NO_WAYLAND_XKB +} + SOURCES += tst_compositor.cpp testcompositor.cpp mockclient.cpp HEADERS += testcompositor.h mockclient.h diff --git a/tests/auto/compositor/tst_compositor.cpp b/tests/auto/compositor/tst_compositor.cpp index 99f08a4e5..803f280bc 100644 --- a/tests/auto/compositor/tst_compositor.cpp +++ b/tests/auto/compositor/tst_compositor.cpp @@ -46,6 +46,8 @@ #include +#include + class tst_WaylandCompositor : public QObject { Q_OBJECT @@ -56,6 +58,7 @@ public: } private slots: + void inputDeviceCapabilities(); void singleClient(); void multipleClients(); void geometry(); @@ -240,5 +243,25 @@ void tst_WaylandCompositor::frameCallback() wl_surface_destroy(surface); } +void tst_WaylandCompositor::inputDeviceCapabilities() +{ + TestCompositor compositor; + QtWayland::InputDevice dev(NULL, compositor.handle(), QWaylandInputDevice::Pointer); + + QTRY_VERIFY(dev.pointerDevice()); + QTRY_VERIFY(!dev.keyboardDevice()); + QTRY_VERIFY(!dev.touchDevice()); + + dev.setCapabilities(QWaylandInputDevice::Keyboard | QWaylandInputDevice::Touch); + QTRY_VERIFY(!dev.pointerDevice()); + QTRY_VERIFY(dev.keyboardDevice()); + QTRY_VERIFY(dev.touchDevice()); + + // Test that existing devices do not change when another is removed + QtWayland::Keyboard *k = dev.keyboardDevice(); + dev.setCapabilities(QWaylandInputDevice::Keyboard); + QTRY_COMPARE(k, dev.keyboardDevice()); +} + #include QTEST_MAIN(tst_WaylandCompositor); -- cgit v1.2.3