diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2013-02-21 10:37:21 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-21 10:37:21 +0100 |
commit | 8fd1330029eafc3f9496febd1ac2597e786ba324 (patch) | |
tree | 00acd1c068972d2de0083933227fae77824f5447 /src/plugins/platforms/cocoa | |
parent | f9fc180d505382e559ebca8a2e6dd09ea3ae52bc (diff) | |
parent | dcb710dd87ab15c3af803133ff2449902dbec036 (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoacursor.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoacursor.mm | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoacursor.h b/src/plugins/platforms/cocoa/qcocoacursor.h index f8829c53e6..dfa1fcff81 100644 --- a/src/plugins/platforms/cocoa/qcocoacursor.h +++ b/src/plugins/platforms/cocoa/qcocoacursor.h @@ -53,6 +53,7 @@ class QCocoaCursor : public QPlatformCursor { public: QCocoaCursor(); + ~QCocoaCursor(); virtual void changeCursor(QCursor * widgetCursor, QWindow * widget); virtual QPoint pos() const; diff --git a/src/plugins/platforms/cocoa/qcocoacursor.mm b/src/plugins/platforms/cocoa/qcocoacursor.mm index 85ac083d3c..12808b7041 100644 --- a/src/plugins/platforms/cocoa/qcocoacursor.mm +++ b/src/plugins/platforms/cocoa/qcocoacursor.mm @@ -49,6 +49,10 @@ QT_BEGIN_NAMESPACE QCocoaCursor::QCocoaCursor() { +} + +QCocoaCursor::~QCocoaCursor() +{ // release cursors QHash<Qt::CursorShape, NSCursor *>::const_iterator i = m_cursors.constBegin(); while (i != m_cursors.constEnd()) { @@ -97,10 +101,15 @@ void QCocoaCursor::changeCursor(QCursor *cursor, QWindow *window) break; case Qt::DragLinkCursor: [[NSCursor dragLinkCursor] set]; + break; default : { // No suitable OS cursor exist, use cursors provided // by Qt for the rest. Check for a cached cursor: NSCursor *cocoaCursor = m_cursors.value(newShape); + if (cocoaCursor && cursor->shape() == Qt::BitmapCursor) { + [cocoaCursor release]; + cocoaCursor = 0; + } if (cocoaCursor == 0) { cocoaCursor = createCursorData(cursor); if (cocoaCursor == 0) { |