summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp')
-rw-r--r--src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp b/src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp
index 947f957e..881ea489 100644
--- a/src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp
+++ b/src/Authoring/Studio/Palettes/Inspector/MouseHelper.cpp
@@ -36,6 +36,18 @@
#include <QtWidgets/qmainwindow.h>
#include <QtCore/qtimer.h>
#include <QtGui/qevent.h>
+#include <QtGui/qbitmap.h>
+
+static void setBlankCursor()
+{
+ // Qt::BlankCursor gets corrupted in some situations, so use custom bitmap (QTBUG-61678)
+ static QBitmap *zeroBitmap = nullptr;
+ if (!zeroBitmap) {
+ zeroBitmap = new QBitmap(32, 32);
+ zeroBitmap->clear();
+ }
+ QGuiApplication::setOverrideCursor(QCursor(*zeroBitmap, *zeroBitmap));
+}
MouseHelper::MouseHelper(QObject *parent)
: QObject(parent)
@@ -51,7 +63,7 @@ MouseHelper::MouseHelper(QObject *parent)
void MouseHelper::startUnboundedDrag()
{
m_dragState = StateDragging;
- qApp->setOverrideCursor(QCursor(Qt::BlankCursor));
+ setBlankCursor();
m_startPos = QCursor::pos();
QWindow *window = g_StudioApp.m_pMainWnd->windowHandle();
@@ -146,4 +158,3 @@ bool MouseHelper::eventFilter(QObject *obj, QEvent *event)
}
return false;
}
-