Skip to content
Snippets Groups Projects
Commit 6c92fda9 authored by Giulio Camuffo's avatar Giulio Camuffo
Browse files

Don't return a null QMimeData from the clipboard


The documentation for QClipboard::mimeData() doesn't say that the returned
value can be null, and some clients just dereference that without checking.
So instead return an empty QMimeData.

Change-Id: Ieec3140af4e7f33cde98ed96fd96b2674d0d0f9f
Reviewed-by: default avatarPier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
Reviewed-by: default avatarJohan Helsing <johan.helsing@qt.io>
parent 90123a9f
No related branches found
No related tags found
No related merge requests found
......@@ -54,11 +54,11 @@ QWaylandClipboard::~QWaylandClipboard()
QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
{
if (mode != QClipboard::Clipboard)
return 0;
return &m_emptyData;
QWaylandInputDevice *inputDevice = mDisplay->currentInputDevice();
if (!inputDevice || !inputDevice->dataDevice())
return 0;
return &m_emptyData;
QWaylandDataSource *source = inputDevice->dataDevice()->selectionSource();
if (source) {
......@@ -68,7 +68,7 @@ QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
if (inputDevice->dataDevice()->selectionOffer())
return inputDevice->dataDevice()->selectionOffer()->mimeData();
return 0;
return &m_emptyData;
}
void QWaylandClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode)
......
......@@ -47,6 +47,7 @@
#include <qpa/qplatformclipboard.h>
#include <QtCore/QVariant>
#include <QtCore/QMimeData>
#include <QtWaylandClient/private/qwaylandclientexport_p.h>
......@@ -70,6 +71,7 @@ public:
private:
QWaylandDisplay *mDisplay;
QMimeData m_emptyData;
};
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment