summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2015-12-16 22:14:36 +0100
committerAndy Nichols <andy.nichols@qt.io>2016-06-28 10:18:12 +0000
commit1955da90a0503b8419e5cab87c915f7fd29af0cf (patch)
tree0892423588beb120ce4d51b5ddeb777c5d583c29 /src
parent6d70e543aa64fb9d618d899977ce9a7c10967944 (diff)
Properly forward mouse events to the VNC client
Change-Id: I3cee27bab4cd81079adedf3968ac4dfebf43aa11 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/vnc/qvnc.cpp12
-rw-r--r--src/plugins/platforms/vnc/qvnc_p.h2
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;
};