This commit is contained in:
Jack Andersen 2019-11-28 19:27:03 -10:00
commit e6bb5f32c1
3 changed files with 13 additions and 6 deletions

2
externals/LibCommon vendored

@ -1 +1 @@
Subproject commit 8524191df613b9149369ed8578a6c4ea3038552b
Subproject commit 828bda48869ae3a75ae77ac690bb33dcd2ecedee

View File

@ -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))
{

View File

@ -3,6 +3,7 @@
#ifdef __APPLE__
#include <CoreGraphics/CGBase.h>
extern "C" Boolean AXIsProcessTrusted(void);
#include <QAbstractNativeEventFilter>
#include <QString>