diff options
author | Mikolaj Boc <mikolaj.boc@qt.io> | 2022-07-15 09:11:11 +0200 |
---|---|---|
committer | Mikolaj Boc <mikolaj.boc@qt.io> | 2022-07-25 14:40:40 +0200 |
commit | 5a4e5c62af0d462e0c26d691d3971e82f3241f4b (patch) | |
tree | 863487079e4e8f7903652bb4e5b80f9149fa4fe8 /src/plugins/platforms/wasm/qwasmeventtranslator.h | |
parent | 57b4e30ff8841da682cc5e27c2b4abf571838e32 (diff) |
Improve window dragging on WASM
Window dragging has been considerably improved by replacing the mouse
events by pointer events and placing a pointer lock on WASM canvas, so
that off-browser window events are delivered to us.
Translation of the drag origin has been limited to inside the canvas, so
that a window cannot be dragged so far that it becomes offscreen and is
unreachable.
Change-Id: Id177c630a6466f04464a513371d6b97d3a098b6a
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmeventtranslator.h')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmeventtranslator.h | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.h b/src/plugins/platforms/wasm/qwasmeventtranslator.h index d86ddf7625..76da1ebbe5 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.h +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.h @@ -12,6 +12,8 @@ #include <QtGui/qinputdevice.h> #include <QHash> #include <QCursor> +#include "qwasmevent.h" +#include "qwasmplatform.h" QT_BEGIN_NAMESPACE @@ -26,25 +28,7 @@ public: explicit QWasmEventTranslator(); ~QWasmEventTranslator(); - template <typename Event> - QFlags<Qt::KeyboardModifier> translatKeyModifier(const Event *event); - static Qt::Key translateEmscriptKey(const EmscriptenKeyboardEvent *emscriptKey); - QFlags<Qt::KeyboardModifier> translateKeyboardEventModifier(const EmscriptenKeyboardEvent *keyEvent); - QFlags<Qt::KeyboardModifier> translateMouseEventModifier(const EmscriptenMouseEvent *mouseEvent); - QFlags<Qt::KeyboardModifier> translateTouchEventModifier(const EmscriptenTouchEvent *touchEvent); - static constexpr Qt::MouseButton translateMouseButton(unsigned short button) { - switch (button) { - case 0: - return Qt::LeftButton; - case 1: - return Qt::MiddleButton; - case 2: - return Qt::RightButton; - default: - return Qt::NoButton; - } - } static QCursor cursorForMode(QWasmCompositor::ResizeMode mode); QString getKeyText(const EmscriptenKeyboardEvent *keyEvent, Qt::Key key); |