18#include <KWayland/Client/compositor.h>
19#include <KWayland/Client/keyboard.h>
20#include <KWayland/Client/pointer.h>
21#include <KWayland/Client/seat.h>
22#include <KWayland/Client/shm_pool.h>
23#include <KWayland/Client/surface.h>
24#include <KWayland/Client/touch.h>
26#include <linux/input.h>
30static const QString s_socketName = QStringLiteral(
"wayland_test_kwin_dont_crash_useractions_menu-0");
40 void testShowHideShowUseractionsMenu();
43void TestDontCrashUseractionsMenu::initTestCase()
45 qRegisterMetaType<KWin::Window *>();
49 QRect(0, 0, 1280, 1024),
50 QRect(1280, 0, 1280, 1024),
54 QVERIFY(kwinApp()->setStyle(QStringLiteral(
"breeze")));
57 QVERIFY(applicationStartedSpy.wait());
60 QCOMPARE(outputs[0]->geometry(), QRect(0, 0, 1280, 1024));
61 QCOMPARE(outputs[1]->geometry(), QRect(1280, 0, 1280, 1024));
64void TestDontCrashUseractionsMenu::init()
72void TestDontCrashUseractionsMenu::cleanup()
77void TestDontCrashUseractionsMenu::testShowHideShowUseractionsMenu()
87 QTRY_VERIFY(userActionsMenu->isShown());
88 QVERIFY(userActionsMenu->hasWindow());
92 QTRY_VERIFY(!userActionsMenu->isShown());
93 QVERIFY(!userActionsMenu->hasWindow());
97 QTRY_VERIFY(userActionsMenu->isShown());
98 QVERIFY(userActionsMenu->hasWindow());
102#include "dont_crash_useractions_menu.moc"
void showWindowMenu(const QRect &pos, Window *cl)
UserActionsMenu * userActionsMenu() const
QList< Output * > outputs() const
void setActiveOutput(Output *output)
#define WAYLANDTEST_MAIN(TestObject)
Window * renderAndWaitForShown(KWayland::Client::Surface *surface, const QSize &size, const QColor &color, const QImage::Format &format=QImage::Format_ARGB32, int timeout=5000)
void keyboardKeyReleased(quint32 key, quint32 time)
void destroyWaylandConnection()
void setOutputConfig(const QList< QRect > &geometries)
void keyboardKeyPressed(quint32 key, quint32 time)
bool setupWaylandConnection(AdditionalWaylandInterfaces flags=AdditionalWaylandInterfaces())
QList< KWayland::Client::Output * > outputs
std::unique_ptr< KWayland::Client::Surface > createSurface()
XdgToplevel * createXdgToplevelSurface(KWayland::Client::Surface *surface, QObject *parent=nullptr)
WaylandServer * waylandServer()
InputRedirection * input()