From 402ab7cd02e55191a7dc2810c8724fe66378fdb7 Mon Sep 17 00:00:00 2001 From: pktiuk Date: Thu, 18 Aug 2022 14:11:52 +0200 Subject: [PATCH 1/3] fix: Broken spring mouse Event on Windows - sendMouseSpringEvent did not match - added override to declarations --- .../winsendinputeventhandler.cpp | 3 +-- src/eventhandlers/winsendinputeventhandler.h | 20 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/eventhandlers/winsendinputeventhandler.cpp b/src/eventhandlers/winsendinputeventhandler.cpp index ced5986a9..872114dab 100644 --- a/src/eventhandlers/winsendinputeventhandler.cpp +++ b/src/eventhandlers/winsendinputeventhandler.cpp @@ -110,8 +110,7 @@ QString WinSendInputEventHandler::getName() { return QString("SendInput"); } QString WinSendInputEventHandler::getIdentifier() { return QString("sendinput"); } -void WinSendInputEventHandler::sendMouseSpringEvent(unsigned int xDis, unsigned int yDis, unsigned int width, - unsigned int height) +void WinSendInputEventHandler::sendMouseSpringEvent(int xDis, int yDis, int width, int height) { if (width > 0 && height > 0) { diff --git a/src/eventhandlers/winsendinputeventhandler.h b/src/eventhandlers/winsendinputeventhandler.h index 536814c85..16d157773 100644 --- a/src/eventhandlers/winsendinputeventhandler.h +++ b/src/eventhandlers/winsendinputeventhandler.h @@ -30,16 +30,16 @@ class WinSendInputEventHandler : public BaseEventHandler public: explicit WinSendInputEventHandler(QObject *parent = 0); - virtual bool init(); - virtual bool cleanup(); - virtual void sendKeyboardEvent(JoyButtonSlot *slot, bool pressed); - virtual void sendMouseButtonEvent(JoyButtonSlot *slot, bool pressed); - virtual void sendMouseEvent(int xDis, int yDis); - virtual void sendMouseSpringEvent(unsigned int xDis, unsigned int yDis, unsigned int width, unsigned int height); - virtual void sendTextEntryEvent(QString maintext); - - virtual QString getName(); - virtual QString getIdentifier(); + virtual bool init() override; + virtual bool cleanup() override; + virtual void sendKeyboardEvent(JoyButtonSlot *slot, bool pressed) override; + virtual void sendMouseButtonEvent(JoyButtonSlot *slot, bool pressed) override; + virtual void sendMouseEvent(int xDis, int yDis) override; + virtual void sendMouseSpringEvent(int xDis, int yDis, int width, int height) override; + virtual void sendTextEntryEvent(QString maintext) override; + + virtual QString getName() override; + virtual QString getIdentifier() override; signals: From 0ffe9e3027cfe172967cc77025080e3894042658 Mon Sep 17 00:00:00 2001 From: pktiuk Date: Thu, 18 Aug 2022 14:32:19 +0200 Subject: [PATCH 2/3] docs: Describe input event handlers --- src/eventhandlers/baseeventhandler.h | 6 ++++++ src/eventhandlers/uinputeventhandler.h | 6 ++++++ src/eventhandlers/winsendinputeventhandler.h | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/src/eventhandlers/baseeventhandler.h b/src/eventhandlers/baseeventhandler.h index 89a4e11f7..4e01f7260 100644 --- a/src/eventhandlers/baseeventhandler.h +++ b/src/eventhandlers/baseeventhandler.h @@ -23,6 +23,12 @@ class JoyButtonSlot; +/** + * @brief Base class for input event handlers + * + * It manages mouse movements and keyboard strokes + * + */ class BaseEventHandler : public QObject { Q_OBJECT diff --git a/src/eventhandlers/uinputeventhandler.h b/src/eventhandlers/uinputeventhandler.h index b4c3e35e0..b3b0c828c 100644 --- a/src/eventhandlers/uinputeventhandler.h +++ b/src/eventhandlers/uinputeventhandler.h @@ -21,6 +21,12 @@ #include "baseeventhandler.h" +/** + * @brief Input event handler class using uinput files + * + * Proper udev rule may be needed for usage + * + */ class UInputEventHandler : public BaseEventHandler { Q_OBJECT diff --git a/src/eventhandlers/winsendinputeventhandler.h b/src/eventhandlers/winsendinputeventhandler.h index 16d157773..bdb2eaf81 100644 --- a/src/eventhandlers/winsendinputeventhandler.h +++ b/src/eventhandlers/winsendinputeventhandler.h @@ -24,6 +24,12 @@ #include +/** + * @brief Input event handler class for Windows + * + * It utilizes SendInput functions + * + */ class WinSendInputEventHandler : public BaseEventHandler { Q_OBJECT From 907c2e80fa3b34806186500ed295a67cb1a38bb6 Mon Sep 17 00:00:00 2001 From: pktiuk Date: Thu, 18 Aug 2022 14:47:02 +0200 Subject: [PATCH 3/3] refactor: remove unused method sendMouseSpringEvent(int xDis, int yDis) --- src/eventhandlers/baseeventhandler.cpp | 11 ----------- src/eventhandlers/baseeventhandler.h | 3 +-- src/eventhandlers/uinputeventhandler.cpp | 10 ---------- src/eventhandlers/uinputeventhandler.h | 1 - src/eventhandlers/xtesteventhandler.cpp | 2 -- src/eventhandlers/xtesteventhandler.h | 1 - 6 files changed, 1 insertion(+), 27 deletions(-) diff --git a/src/eventhandlers/baseeventhandler.cpp b/src/eventhandlers/baseeventhandler.cpp index 18b07ed7a..01ebbf869 100644 --- a/src/eventhandlers/baseeventhandler.cpp +++ b/src/eventhandlers/baseeventhandler.cpp @@ -65,15 +65,4 @@ void BaseEventHandler::sendMouseSpringEvent(int xDis, int yDis, int width, int h Q_UNUSED(height); } -/** - * @brief Do nothing by default. Useful for child classes to define behavior. - * @param Displacement of X coordinate - * @param Displacement of Y coordinate - */ -void BaseEventHandler::sendMouseSpringEvent(int xDis, int yDis) -{ - Q_UNUSED(xDis); - Q_UNUSED(yDis); -} - void BaseEventHandler::sendTextEntryEvent(QString maintext) { Q_UNUSED(maintext); } diff --git a/src/eventhandlers/baseeventhandler.h b/src/eventhandlers/baseeventhandler.h index 4e01f7260..f9cf9bf32 100644 --- a/src/eventhandlers/baseeventhandler.h +++ b/src/eventhandlers/baseeventhandler.h @@ -25,7 +25,7 @@ class JoyButtonSlot; /** * @brief Base class for input event handlers - * + * * It manages mouse movements and keyboard strokes * */ @@ -46,7 +46,6 @@ class BaseEventHandler : public QObject virtual void sendMouseAbsEvent(int xDis, int yDis, int screen); virtual void sendMouseSpringEvent(int xDis, int yDis, int width, int height); - virtual void sendMouseSpringEvent(int xDis, int yDis); virtual void sendTextEntryEvent(QString maintext); diff --git a/src/eventhandlers/uinputeventhandler.cpp b/src/eventhandlers/uinputeventhandler.cpp index 795c95cc0..6fa9e59fc 100644 --- a/src/eventhandlers/uinputeventhandler.cpp +++ b/src/eventhandlers/uinputeventhandler.cpp @@ -274,16 +274,6 @@ void UInputEventHandler::sendMouseSpringEvent(int xDis, int yDis, int width, int } } -void UInputEventHandler::sendMouseSpringEvent(int xDis, int yDis) -{ - if ((xDis >= -1.0) && (xDis <= 1.0) && (yDis >= -1.0) && (yDis <= 1.0)) - { - int fx = ceil(32767 * xDis); - int fy = ceil(32767 * yDis); - sendMouseAbsEvent(fx, fy, -1); - } -} - int UInputEventHandler::openUInputHandle() { int filehandle = -1; diff --git a/src/eventhandlers/uinputeventhandler.h b/src/eventhandlers/uinputeventhandler.h index b3b0c828c..00b871534 100644 --- a/src/eventhandlers/uinputeventhandler.h +++ b/src/eventhandlers/uinputeventhandler.h @@ -43,7 +43,6 @@ class UInputEventHandler : public BaseEventHandler virtual void sendMouseAbsEvent(int xDis, int yDis, int screen) override; virtual void sendMouseSpringEvent(int xDis, int yDis, int width, int height) override; - virtual void sendMouseSpringEvent(int xDis, int yDis) override; virtual QString getName() override; virtual QString getIdentifier() override; diff --git a/src/eventhandlers/xtesteventhandler.cpp b/src/eventhandlers/xtesteventhandler.cpp index 66c18a500..c1c0087d1 100644 --- a/src/eventhandlers/xtesteventhandler.cpp +++ b/src/eventhandlers/xtesteventhandler.cpp @@ -179,6 +179,4 @@ void XTestEventHandler::sendMouseSpringEvent(int xDis, int yDis, int width, int Q_UNUSED(height); } -void XTestEventHandler::sendMouseSpringEvent(int, int) {} - void XTestEventHandler::printPostMessages() {} diff --git a/src/eventhandlers/xtesteventhandler.h b/src/eventhandlers/xtesteventhandler.h index b954551dd..22aadc699 100644 --- a/src/eventhandlers/xtesteventhandler.h +++ b/src/eventhandlers/xtesteventhandler.h @@ -40,7 +40,6 @@ class XTestEventHandler : public BaseEventHandler void sendMouseAbsEvent(int xDis, int yDis, int screen) override; void sendMouseSpringEvent(int xDis, int yDis, int width, int height) override; - void sendMouseSpringEvent(int xDis, int yDis) override; void sendTextEntryEvent(QString maintext) override;