From 5edda94043dc681e857c7e415a39612a4d651096 Mon Sep 17 00:00:00 2001 From: wandererfan Date: Fri, 24 Nov 2023 17:24:58 -0500 Subject: [PATCH] [TD]fix disappearing balloon cursor --- src/Mod/TechDraw/Gui/QGVNavStyle.cpp | 10 +++++++++- src/Mod/TechDraw/Gui/QGVNavStyle.h | 1 + src/Mod/TechDraw/Gui/QGVNavStyleBlender.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleCAD.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleGesture.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleInventor.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleMaya.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleOCC.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleOpenSCAD.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleRevit.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleTinkerCAD.cpp | 3 ++- src/Mod/TechDraw/Gui/QGVNavStyleTouchpad.cpp | 3 ++- 12 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/Mod/TechDraw/Gui/QGVNavStyle.cpp b/src/Mod/TechDraw/Gui/QGVNavStyle.cpp index e9185be1a1..e5bb2088a9 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyle.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyle.cpp @@ -225,7 +225,8 @@ void QGVNavStyle::handleMouseMoveEvent(QMouseEvent* event) { // Base::Console().Message("QGVNS::handleMouseMoveEvent()\n"); if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } if (panningActive) { @@ -398,6 +399,13 @@ void QGVNavStyle::placeBalloon(QPoint p) getViewer()->setBalloonPlacing(false); } +void QGVNavStyle::balloonCursorMovement(QMouseEvent *event) +{ + getViewer()->setBalloonCursorPos(event->pos()); + event->accept(); + return; +} + //**************************************** KeyCombination::KeyCombination() {} diff --git a/src/Mod/TechDraw/Gui/QGVNavStyle.h b/src/Mod/TechDraw/Gui/QGVNavStyle.h index 56bebb3dba..db6b7c6561 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyle.h +++ b/src/Mod/TechDraw/Gui/QGVNavStyle.h @@ -96,6 +96,7 @@ public: virtual void stopClick(); virtual void placeBalloon(QPoint p); + virtual void balloonCursorMovement(QMouseEvent *event); protected: virtual void initialize(); diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleBlender.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleBlender.cpp index b6242ad066..665669f906 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleBlender.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleBlender.cpp @@ -64,7 +64,8 @@ void QGVNavStyleBlender::handleMouseMoveEvent(QMouseEvent *event) // QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier)); if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } if ((QGuiApplication::mouseButtons() & Qt::LeftButton) && diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleCAD.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleCAD.cpp index 2157632b8a..3752ae195c 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleCAD.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleCAD.cpp @@ -83,7 +83,8 @@ void QGVNavStyleCAD::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleCAD::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //if the mouse moves between press and release, then it isn't a click diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleGesture.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleGesture.cpp index 6f440f0d39..da6f3fb1e3 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleGesture.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleGesture.cpp @@ -53,7 +53,8 @@ void QGVNavStyleGesture::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleGesture::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //if the mouse moves between press and release, then it isn't a click diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleInventor.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleInventor.cpp index 7b85d37786..cc31f29950 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleInventor.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleInventor.cpp @@ -58,7 +58,8 @@ void QGVNavStyleInventor::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleInventor::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } if ((QGuiApplication::mouseButtons() & Qt::LeftButton) && diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleMaya.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleMaya.cpp index 01ddba8710..cde2c62bd4 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleMaya.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleMaya.cpp @@ -66,7 +66,8 @@ void QGVNavStyleMaya::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleMaya::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //pan mode alt + MMB + mouse movement diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleOCC.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleOCC.cpp index 410916309d..7b689f1aa2 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleOCC.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleOCC.cpp @@ -66,7 +66,8 @@ void QGVNavStyleOCC::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleOCC::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //pan mode 1 - MMB + mouse movement diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleOpenSCAD.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleOpenSCAD.cpp index e0703fef9e..42e1d41d4b 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleOpenSCAD.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleOpenSCAD.cpp @@ -62,7 +62,8 @@ void QGVNavStyleOpenSCAD::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleOpenSCAD::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //if the mouse moves between press and release, then it isn't a click diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleRevit.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleRevit.cpp index 2d1d10de07..a6fb0c9fc3 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleRevit.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleRevit.cpp @@ -53,7 +53,8 @@ void QGVNavStyleRevit::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleRevit::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //if the mouse moves between press and release, then it isn't a click diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleTinkerCAD.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleTinkerCAD.cpp index 06cf7353ff..4a8c4c34bc 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleTinkerCAD.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleTinkerCAD.cpp @@ -51,7 +51,8 @@ void QGVNavStyleTinkerCAD::handleMousePressEvent(QMouseEvent *event) void QGVNavStyleTinkerCAD::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } //pan mode - MMB + move diff --git a/src/Mod/TechDraw/Gui/QGVNavStyleTouchpad.cpp b/src/Mod/TechDraw/Gui/QGVNavStyleTouchpad.cpp index 24658e05ea..e086775613 100644 --- a/src/Mod/TechDraw/Gui/QGVNavStyleTouchpad.cpp +++ b/src/Mod/TechDraw/Gui/QGVNavStyleTouchpad.cpp @@ -85,7 +85,8 @@ void QGVNavStyleTouchpad::handleKeyReleaseEvent(QKeyEvent *event) void QGVNavStyleTouchpad::handleMouseMoveEvent(QMouseEvent *event) { if (getViewer()->isBalloonPlacing()) { - getViewer()->setBalloonCursorPos(event->pos()); + balloonCursorMovement(event); + return; } if (QApplication::keyboardModifiers() == Qt::ShiftModifier) {