diff --git a/src/Editor/CBasicViewport.cpp b/src/Editor/CBasicViewport.cpp index 2b2ce856..7749f8aa 100644 --- a/src/Editor/CBasicViewport.cpp +++ b/src/Editor/CBasicViewport.cpp @@ -270,17 +270,23 @@ void CBasicViewport::ProcessInput() if (IsMouseInputActive()) { + float XMovement, YMovement; #ifdef __APPLE__ // QCursor::setPos only works on macOS when the user permits PWE // to control the computer via Universal Access. // As an alternative to relying on the delta of a warped mouse, // use the accumulated delta directly reported by AppKit. - float XMovement = gpMouseDragCocoaEventFilter->claimX() * 0.01f; - float YMovement = gpMouseDragCocoaEventFilter->claimY() * 0.01f; -#else - float XMovement = (QCursor::pos().x() - mLastMousePos.x()) * 0.01f; - float YMovement = (QCursor::pos().y() - mLastMousePos.y()) * 0.01f; + if (!AXIsProcessTrusted()) + { + XMovement = gpMouseDragCocoaEventFilter->claimX() * 0.01f; + YMovement = gpMouseDragCocoaEventFilter->claimY() * 0.01f; + } + else #endif + { + XMovement = (QCursor::pos().x() - mLastMousePos.x()) * 0.01f; + YMovement = (QCursor::pos().y() - mLastMousePos.y()) * 0.01f; + } if ((XMovement != 0) || (YMovement != 0)) { diff --git a/src/Editor/MacOSExtras.h b/src/Editor/MacOSExtras.h index c843e1e3..622a3f65 100644 --- a/src/Editor/MacOSExtras.h +++ b/src/Editor/MacOSExtras.h @@ -3,6 +3,7 @@ #ifdef __APPLE__ #include +extern "C" Boolean AXIsProcessTrusted(void); #include #include