Skip to content

Commit

Permalink
Do not delete MacPasteboard instance on exit, resolves #1543
Browse files Browse the repository at this point in the history
  • Loading branch information
phoerious committed Mar 2, 2018
1 parent 6f6a63f commit c1dcd76
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
3 changes: 2 additions & 1 deletion src/core/MacPasteboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@

#include <QMacPasteboardMime>
#include <QTextCodec>
#include <QObject>

class MacPasteboard : public QMacPasteboardMime
class MacPasteboard : public QObject, QMacPasteboardMime
{
public:
explicit MacPasteboard() : QMacPasteboardMime(MIME_ALL) {}
Expand Down
9 changes: 7 additions & 2 deletions src/gui/Clipboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,19 @@
#include "core/Config.h"

Clipboard* Clipboard::m_instance(nullptr);
#ifdef Q_OS_MAC
QPointer<MacPasteboard> Clipboard::m_pasteboard(nullptr);
#endif

Clipboard::Clipboard(QObject* parent)
: QObject(parent)
, m_timer(new QTimer(this))
{
#ifdef Q_OS_MAC
, m_pasteboard(new MacPasteboard)
if (!m_pasteboard) {
m_pasteboard = new MacPasteboard();
}
#endif
{
m_timer->setSingleShot(true);
connect(m_timer, SIGNAL(timeout()), SLOT(clearClipboard()));
connect(qApp, SIGNAL(aboutToQuit()), SLOT(clearCopiedText()));
Expand Down
5 changes: 4 additions & 1 deletion src/gui/Clipboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <QObject>
#ifdef Q_OS_MAC
#include "core/MacPasteboard.h"
#include <QPointer>
#endif

class QTimer;
Expand All @@ -47,7 +48,9 @@ private slots:

QTimer* m_timer;
#ifdef Q_OS_MAC
QScopedPointer<MacPasteboard> m_pasteboard;
// This object lives for the whole program lifetime and we cannot delete it on exit,
// so ignore leak warnings. See https://bugreports.qt.io/browse/QTBUG-54832
static QPointer<MacPasteboard> m_pasteboard;
#endif
QString m_lastCopied;
};
Expand Down

0 comments on commit c1dcd76

Please sign in to comment.