summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/client/seatv4/tst_seatv4.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/client/seatv4/tst_seatv4.cpp b/tests/auto/client/seatv4/tst_seatv4.cpp
index 7dc2e727a..1d6fb6b9c 100644
--- a/tests/auto/client/seatv4/tst_seatv4.cpp
+++ b/tests/auto/client/seatv4/tst_seatv4.cpp
@@ -72,6 +72,7 @@ private slots:
void usesEnterSerial();
void focusDestruction();
void mousePress();
+ void mousePressFloat();
void simpleAxis_data();
void simpleAxis();
void invalidPointerEvents();
@@ -207,6 +208,30 @@ void tst_seatv4::mousePress()
QTRY_VERIFY(window.m_pressed);
}
+void tst_seatv4::mousePressFloat()
+{
+ class Window : public QRasterWindow {
+ public:
+ void mousePressEvent(QMouseEvent *e) override { m_position = e->localPos(); }
+ QPointF m_position;
+ };
+
+ Window window;
+ window.resize(64, 64);
+ window.show();
+ QCOMPOSITOR_TRY_VERIFY(xdgSurface() && xdgSurface()->m_committedConfigureSerial);
+
+ exec([&] {
+ auto *surface = xdgSurface()->m_surface;
+ pointer()->sendEnter(surface, {32.75, 32.25});
+ pointer()->sendButton(client(), BTN_LEFT, 1);
+ pointer()->sendButton(client(), BTN_LEFT, 0);
+ });
+ QMargins m = window.frameMargins();
+ QPointF pressedPosition(32.75 -m.left(), 32.25 - m.top());
+ QTRY_COMPARE(window.m_position, pressedPosition);
+}
+
void tst_seatv4::simpleAxis_data()
{
QTest::addColumn<uint>("axis");