diff options
| author | Lorn Potter <lorn.potter@gmail.com> | 2023-11-21 14:04:20 +1000 |
|---|---|---|
| committer | Lorn Potter <lorn.potter@gmail.com> | 2023-12-20 00:46:17 +0000 |
| commit | 0367aace14b61e72433fa7cb7aab18b3def0030c (patch) | |
| tree | d380d7de1ad1b28178f9e4b0b216512f461dcd39 /src | |
| parent | 585f348f3c8137cec4ab503eecc28296da2798f7 (diff) | |
wasm: fix Pen input
This also adds the ability to distinguish between a Pen and a Touch.
Fixes: QTBUG-116989
Change-Id: Iffc5d20c9b46c1746a03c45dd12017d5dd5172a5
Pick-to: 6.6 6.7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/platforms/wasm/qwasmevent.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/platforms/wasm/qwasmevent.h | 1 | ||||
| -rw-r--r-- | src/plugins/platforms/wasm/qwasmwindowclientarea.cpp | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/platforms/wasm/qwasmevent.cpp b/src/plugins/platforms/wasm/qwasmevent.cpp index 5a50a4d14dc..98df694b552 100644 --- a/src/plugins/platforms/wasm/qwasmevent.cpp +++ b/src/plugins/platforms/wasm/qwasmevent.cpp @@ -180,6 +180,8 @@ PointerEvent::PointerEvent(EventType type, emscripten::val event) : MouseEvent(t return PointerType::Mouse; if (type == "touch") return PointerType::Touch; + if (type == "pen") + return PointerType::Pen; return PointerType::Other; })(); width = event["width"].as<qreal>(); diff --git a/src/plugins/platforms/wasm/qwasmevent.h b/src/plugins/platforms/wasm/qwasmevent.h index 5ad441f2fbe..8ccbbb71045 100644 --- a/src/plugins/platforms/wasm/qwasmevent.h +++ b/src/plugins/platforms/wasm/qwasmevent.h @@ -39,6 +39,7 @@ enum class EventType { enum class PointerType { Mouse, Touch, + Pen, Other, }; diff --git a/src/plugins/platforms/wasm/qwasmwindowclientarea.cpp b/src/plugins/platforms/wasm/qwasmwindowclientarea.cpp index 0cea2690c48..2c9f2157602 100644 --- a/src/plugins/platforms/wasm/qwasmwindowclientarea.cpp +++ b/src/plugins/platforms/wasm/qwasmwindowclientarea.cpp @@ -84,7 +84,7 @@ bool ClientArea::deliverEvent(const PointerEvent &event) pointInTargetWindowCoords.y() / m_window->window()->height()); const auto tp = m_pointerIdToTouchPoints.find(event.pointerId); - if (tp != m_pointerIdToTouchPoints.end()) { + if (event.pointerType != PointerType::Pen && tp != m_pointerIdToTouchPoints.end()) { touchPoint = &tp.value(); } else { touchPoint = &m_pointerIdToTouchPoints |
