From 633676709791ebb0798f5f27192ce1c3141bec96 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Tue, 12 Mar 2024 14:03:51 +0000 Subject: [PATCH] CRightClickEnabler: Prevent duplicate events for right click and tap and hold on Linux --- sdrgui/gui/crightclickenabler.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sdrgui/gui/crightclickenabler.cpp b/sdrgui/gui/crightclickenabler.cpp index 8a6c6b6fb..d7624c383 100644 --- a/sdrgui/gui/crightclickenabler.cpp +++ b/sdrgui/gui/crightclickenabler.cpp @@ -38,21 +38,18 @@ bool CRightClickEnabler::eventFilter(QObject *obj, QEvent *event) { auto mouseEvent = (QMouseEvent*) event; + if (mouseEvent->source() == Qt::MouseEventNotSynthesized) { + m_mousePressed = true; + } else { + m_mousePressed = false; // Mouse event generated from touch event + } + if (mouseEvent->button() == Qt::RightButton) { emit rightClick(mouseEvent->globalPos()); mouseEvent->setAccepted(true); return true; } - - if (mouseEvent->button() == Qt::LeftButton) - { - if (mouseEvent->source() == Qt::MouseEventNotSynthesized) { - m_mousePressed = true; - } else { - m_mousePressed = false; // Mouse event generated from touch event - } - } } else if (event->type() == QEvent::MouseButtonRelease) { @@ -61,6 +58,7 @@ bool CRightClickEnabler::eventFilter(QObject *obj, QEvent *event) if (mouseEvent->button() == Qt::RightButton) { mouseEvent->setAccepted(true); + m_mousePressed = false; return true; }