summaryrefslogtreecommitdiffstats
path: root/src/core/render_widget_host_view_qt.cpp
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2017-02-27 07:22:35 -0800
committerTony Sarajärvi <tony.sarajarvi@qt.io>2017-03-24 11:01:49 +0000
commit3a463740b2026767b87662d70b9aa5a2c85115e5 (patch)
tree26edf9e21fb2c689021f4f75f46b3f33a14a66d3 /src/core/render_widget_host_view_qt.cpp
parent385eccbd607216d421f88c38951b00b922eeee50 (diff)
Fix movementX and movementY properties of mouse events
Calculate movementX/movementY at every turn, not only when the mouse is in locked state. Task-number: QTBUG-59127 Change-Id: I362e055e6b5d6f831671604a093434373cedf19a Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/render_widget_host_view_qt.cpp')
-rw-r--r--src/core/render_widget_host_view_qt.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index f1c69fca3..f96329139 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -422,7 +422,7 @@ void RenderWidgetHostViewQt::SetBackgroundColor(SkColor color)
bool RenderWidgetHostViewQt::LockMouse()
{
mouse_locked_ = true;
- m_lockedMousePosition = QCursor::pos();
+ m_previousMousePosition = QCursor::pos();
m_delegate->lockMouse();
qApp->setOverrideCursor(Qt::BlankCursor);
return true;
@@ -938,11 +938,13 @@ void RenderWidgetHostViewQt::handleMouseEvent(QMouseEvent* event)
m_clickHelper.lastPressPosition = QPointF(event->pos()).toPoint();
}
- if (IsMouseLocked()) {
- webEvent.movementX = -(m_lockedMousePosition.x() - event->globalX());
- webEvent.movementY = -(m_lockedMousePosition.y() - event->globalY());
- QCursor::setPos(m_lockedMousePosition);
- }
+ webEvent.movementX = event->globalX() - m_previousMousePosition.x();
+ webEvent.movementY = event->globalY() - m_previousMousePosition.y();
+
+ if (IsMouseLocked())
+ QCursor::setPos(m_previousMousePosition);
+ else
+ m_previousMousePosition = event->globalPos();
if (m_imeInProgress && event->type() == QMouseEvent::MouseButtonPress) {
m_imeInProgress = false;