diff --git a/autotests/wayland/decoration_input_test.cpp b/autotests/wayland/decoration_input_test.cpp index 11e367e6d7..aa73a64e3d 100644 --- a/autotests/wayland/decoration_input_test.cpp +++ b/autotests/wayland/decoration_input_test.cpp @@ -39,6 +39,8 @@ along with this program. If not, see . #include #include +#include + #include namespace KWin @@ -55,6 +57,7 @@ private Q_SLOTS: void cleanup(); void testAxis(); void testDoubleClick(); + void testHover(); private: AbstractClient *showWindow(); @@ -287,6 +290,42 @@ void KWin::DecorationInputTest::testDoubleClick() QVERIFY(!c->isOnAllDesktops()); } +void DecorationInputTest::testHover() +{ + AbstractClient *c = showWindow(); + QVERIFY(c); + QVERIFY(c->isDecorated()); + QVERIFY(!c->noBorder()); + + // our left border is moved out of the visible area, so move the window to a better place + c->move(QPoint(20, 0)); + + quint32 timestamp = 1; + MOTION(QPoint(c->geometry().center().x(), c->clientPos().y() / 2)); + QCOMPARE(c->cursor(), Qt::ArrowCursor); + + MOTION(QPoint(20, 0)); + QCOMPARE(c->cursor(), Qt::SizeFDiagCursor); + MOTION(QPoint(c->geometry().x() + c->geometry().width() / 2, 0)); + QCOMPARE(c->cursor(), Qt::SizeVerCursor); + MOTION(QPoint(c->geometry().x() + c->geometry().width() - 1, 0)); + QCOMPARE(c->cursor(), Qt::SizeBDiagCursor); + MOTION(QPoint(c->geometry().x() + c->geometry().width() - 1, c->height() / 2)); + QCOMPARE(c->cursor(), Qt::SizeHorCursor); + MOTION(QPoint(c->geometry().x() + c->geometry().width() - 1, c->height() - 1)); + QCOMPARE(c->cursor(), Qt::SizeFDiagCursor); + MOTION(QPoint(c->geometry().x() + c->geometry().width() / 2, c->height() - 1)); + QCOMPARE(c->cursor(), Qt::SizeVerCursor); + MOTION(QPoint(c->geometry().x(), c->height() - 1)); + QCOMPARE(c->cursor(), Qt::SizeBDiagCursor); + MOTION(QPoint(c->geometry().x(), c->height() / 2)); + QCOMPARE(c->cursor(), Qt::SizeHorCursor); + + MOTION(c->geometry().center()); + QEXPECT_FAIL("", "Cursor not set back on leave", Continue); + QCOMPARE(c->cursor(), Qt::ArrowCursor); +} + } WAYLANTEST_MAIN(KWin::DecorationInputTest)