From 1955da90a0503b8419e5cab87c915f7fd29af0cf Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 16 Dec 2015 22:14:36 +0100 Subject: Properly forward mouse events to the VNC client Change-Id: I3cee27bab4cd81079adedf3968ac4dfebf43aa11 Reviewed-by: Frederik Gladhorn --- src/plugins/platforms/vnc/qvnc.cpp | 12 +++++------- src/plugins/platforms/vnc/qvnc_p.h | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'src/plugins/platforms/vnc') 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 +#include #include #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; }; -- cgit v1.2.3