|
|
|
|
@ -39,6 +39,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
|
|
|
#include <KWayland/Client/shm_pool.h> |
|
|
|
|
#include <KWayland/Client/surface.h> |
|
|
|
|
|
|
|
|
|
#include <KDecoration2/Decoration> |
|
|
|
|
|
|
|
|
|
#include <linux/input.h> |
|
|
|
|
|
|
|
|
|
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) |
|
|
|
|
|