From 39b2c0f83a6588d317dac179fe12525117a4548e Mon Sep 17 00:00:00 2001 From: beholder Date: Wed, 25 Oct 2017 01:59:56 +0300 Subject: [PATCH] fix for FB 8553 & FB 8380 --- .../src/display-plugins/CompositorHelper.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp b/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp index 2f57cc29d0..7b639e8308 100644 --- a/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp +++ b/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp @@ -234,7 +234,8 @@ void CompositorHelper::handleLeaveEvent() { bool CompositorHelper::handleRealMouseMoveEvent(bool sendFakeEvent) { // If the mouse move came from a capture mouse related move, we completely ignore it. - if (_ignoreMouseMove) { + // Note: if not going to synthesize event - do not touch _ignoreMouseMove flag + if (_ignoreMouseMove && sendFakeEvent) { _ignoreMouseMove = false; return true; // swallow the event } @@ -246,7 +247,12 @@ bool CompositorHelper::handleRealMouseMoveEvent(bool sendFakeEvent) { auto changeInRealMouse = newPosition - _lastKnownRealMouse; auto newReticlePosition = _reticlePositionInHMD + toGlm(changeInRealMouse); setReticlePosition(newReticlePosition, sendFakeEvent); - _ignoreMouseMove = true; + + // Note: if not going to synthesize event - do not touch _ignoreMouseMove flag + if (sendFakeEvent) { + _ignoreMouseMove = true; + } + QCursor::setPos(QPoint(_lastKnownRealMouse.x(), _lastKnownRealMouse.y())); // move cursor back to where it was return true; // swallow the event } else {