From e86bb12144b7198e4b7e1979dffc8c4cbdd5c6ec Mon Sep 17 00:00:00 2001 From: etbh Date: Thu, 15 Apr 2021 00:33:52 +0200 Subject: [PATCH] keeping memory of if the last axis input was mapped to a mouse button or not, to be able to trigger the correct release event --- src/axis.cpp | 3 ++- src/axis.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/axis.cpp b/src/axis.cpp index 2751246..c43c24b 100644 --- a/src/axis.cpp +++ b/src/axis.cpp @@ -12,6 +12,7 @@ Axis::Axis( int i, QObject *parent ) : QObject(parent) { index = i; isOn = false; isDown = false; + useMouse = false; state = 0; interpretation = ZeroOne; gradient = false; @@ -378,7 +379,7 @@ void Axis::move( bool press ) { //dialog being open and blocking events from happening. if (isDown == press) return; isDown = press; - bool useMouse = (state > 0)?puseMouse:nuseMouse; + useMouse = (state == 0 )? useMouse: (state > 0) ?puseMouse:nuseMouse; if (press) { e.type = useMouse ? FakeEvent::MouseDown : FakeEvent::KeyDown; downkey = (state > 0)?pkeycode:nkeycode; diff --git a/src/axis.h b/src/axis.h index b10b822..f7e2a5f 100644 --- a/src/axis.h +++ b/src/axis.h @@ -72,6 +72,8 @@ class Axis : public QObject { virtual void move( bool press ); //is a key currently depressed? bool isDown; + //is a mouse button currently in use? + bool useMouse; //variables for calculating quadratic used for gradient mouse axes float inverseRange;