diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-12-16 22:14:36 +0100 |
---|---|---|
committer | Andy Nichols <andy.nichols@qt.io> | 2016-06-28 10:18:12 +0000 |
commit | 1955da90a0503b8419e5cab87c915f7fd29af0cf (patch) | |
tree | 0892423588beb120ce4d51b5ddeb777c5d583c29 | |
parent | 6d70e543aa64fb9d618d899977ce9a7c10967944 (diff) |
Properly forward mouse events to the VNC client
Change-Id: I3cee27bab4cd81079adedf3968ac4dfebf43aa11
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
-rw-r--r-- | src/plugins/platforms/vnc/qvnc.cpp | 12 | ||||
-rw-r--r-- | src/plugins/platforms/vnc/qvnc_p.h | 2 |
2 files changed, 6 insertions, 8 deletions
diff --git a/src/plugins/platforms/vnc/qvnc.cpp b/src/plugins/platforms/vnc/qvnc.cpp index 87c213c9ad..25e1be5d24 100644 --- a/src/plugins/platforms/vnc/qvnc.cpp +++ b/src/plugins/platforms/vnc/qvnc.cpp @@ -40,6 +40,8 @@ #include "qvncscreen.h" #include "QtNetwork/qtcpserver.h" #include "QtNetwork/qtcpsocket.h" +#include <qpa/qwindowsysteminterface.h> +#include <QtGui/qguiapplication.h> #include <qthread.h> #ifdef Q_OS_WIN @@ -410,7 +412,7 @@ bool QRfbPointerEvent::read(QTcpSocket *s) char buttonMask; s->read(&buttonMask, 1); - buttons = 0; + buttons = Qt::NoButton; if (buttonMask & 1) buttons |= Qt::LeftButton; if (buttonMask & 2) @@ -481,10 +483,6 @@ void QRfbRawEncoder::write() return; const QImage screenImage = server->screenImage(); - static int frame = 0; - ++frame; - QString filename = QString("screen.%1.png").arg(frame); - screenImage.save(filename); for (const QRect &tileRect: rects) { const QRfbRect rect(tileRect.x(), tileRect.y(), @@ -1070,8 +1068,8 @@ void QVncServer::pointerEvent() { QRfbPointerEvent ev; if (ev.read(client)) { - //const QPoint offset = qvnc_screen->geometry().topLeft(); - // ### QWSServer::sendMouseEvent(offset + QPoint(ev.x, ev.y), ev.buttons); + const QPoint pos = qvnc_screen->geometry().topLeft() + QPoint(ev.x, ev.y); + QWindowSystemInterface::handleMouseEvent(0, pos, pos, ev.buttons, QGuiApplication::keyboardModifiers()); handleMsg = false; } } diff --git a/src/plugins/platforms/vnc/qvnc_p.h b/src/plugins/platforms/vnc/qvnc_p.h index 37558196e4..01884523d4 100644 --- a/src/plugins/platforms/vnc/qvnc_p.h +++ b/src/plugins/platforms/vnc/qvnc_p.h @@ -188,7 +188,7 @@ class QRfbPointerEvent public: bool read(QTcpSocket *s); - uint buttons; + Qt::MouseButtons buttons; quint16 x; quint16 y; }; |