diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2020-09-21 14:19:11 +0200 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2020-09-23 18:55:53 +0200 |
commit | 720e2e0c92ca6635c5f05f318770a70cf653c1c7 (patch) | |
tree | b5e065341cb3ffd0e0504949c0e78fd39443f2ba /src/plugins/platforms/cocoa | |
parent | 8a50a114375d1ed5a564ce48836a3e6515aeceb1 (diff) |
QCocoaDrag::drag - make sure clipboard is ours and populated
This fix is not final yet, it's just to plumb the serious bug/regression
of accessing NSPasteBoard in some strange state and the one we have not
populated yet/do not even own (?). Drag image(s) is broken atm and will
be fixed in the follow-up patch.
Pick-to: 5.15
Task-number: QTBUG-71939
Change-Id: I5c3ac3ec138d7407c2e0c206485478aa5244ae15
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoadrag.mm | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm index d56f30b063..40ce461c30 100644 --- a/src/plugins/platforms/cocoa/qcocoadrag.mm +++ b/src/plugins/platforms/cocoa/qcocoadrag.mm @@ -130,6 +130,10 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o) m_drag = o; m_executed_drop_action = Qt::IgnoreAction; + QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND); + m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy")); + dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest); + if (maybeDragMultipleItems()) return m_executed_drop_action; @@ -138,10 +142,6 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o) NSImage *dragImage = [NSImage imageFromQImage:pm.toImage()]; Q_ASSERT(dragImage); - QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND); - m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy")); - dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest); - NSPoint event_location = [m_lastEvent locationInWindow]; NSWindow *theWindow = [m_lastEvent window]; Q_ASSERT(theWindow); |