diff options
author | Neil <nyamatongwe@gmail.com> | 2016-02-29 13:42:44 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2016-02-29 13:42:44 +1100 |
commit | cbf6678499517c431953d7ca959bac3273e013b5 (patch) | |
tree | 331d8603240232622b86d2425876aa92fdbd1cbc | |
parent | 7d65b2507330ccb9f7ec5ee2638c08a335f658d2 (diff) | |
download | scintilla-mirror-cbf6678499517c431953d7ca959bac3273e013b5.tar.gz |
Backed out changeset: 8bc19ede3b51
Was incompatible with Qt 4.7 and 4.8.
-rw-r--r-- | doc/ScintillaHistory.html | 2 | ||||
-rw-r--r-- | qt/ScintillaEditBase/ScintillaQt.cpp | 38 |
2 files changed, 12 insertions, 28 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 758877d9c..b3b417d19 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -540,7 +540,7 @@ IME target range displayed on Qt for OS X. </li> <li> - On Qt and Windows, make clipboard operations more robust by retrying if they fail + On Windows, make clipboard operations more robust by retrying OpenClipboard if it fails as this may occur when another application has opened the clipboard. </li> <li> diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp index e4bbb5c1d..3b7db8002 100644 --- a/qt/ScintillaEditBase/ScintillaQt.cpp +++ b/qt/ScintillaEditBase/ScintillaQt.cpp @@ -25,7 +25,6 @@ #include <QScrollBar> #include <QTimer> #include <QTextCodec> -#include <QThread> #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -307,36 +306,21 @@ void ScintillaQt::ReconfigureScrollBars() } } -static bool clipboardAccessFailed; -static void ClipboardMessageHandler(QtMsgType, const QMessageLogContext &, const QString &) -{ - clipboardAccessFailed = true; -} - void ScintillaQt::CopyToModeClipboard(const SelectionText &selectedText, QClipboard::Mode clipboardMode_) { - // Try up to 8 times, with an initial delay of 1 ms and an exponential - // back off for a maximum total delay of 127 ms (1+2+4+8+16+32+64). - QString text = StringFromSelectedText(selectedText); - for (int attempt = 0; attempt < 8; attempt++) { - if (attempt > 0) - QThread::msleep(1 << (attempt-1)); - - QMimeData *mimeData = new QMimeData; - mimeData->setText(text); - if (selectedText.rectangular) - AddRectangularToMime(mimeData, text); + QClipboard *clipboard = QApplication::clipboard(); + clipboard->clear(clipboardMode_); + QString su = StringFromSelectedText(selectedText); + QMimeData *mimeData = new QMimeData(); + mimeData->setText(su); + if (selectedText.rectangular) { + AddRectangularToMime(mimeData, su); + } - // Allow client code to add additional data (e.g rich text). - emit aboutToCopy(mimeData); + // Allow client code to add additional data (e.g rich text). + emit aboutToCopy(mimeData); - clipboardAccessFailed = false; - QtMessageHandler handler = qInstallMessageHandler(ClipboardMessageHandler); - QApplication::clipboard()->setMimeData(mimeData, clipboardMode_); - qInstallMessageHandler(handler); - if (!clipboardAccessFailed) - return; - } + clipboard->setMimeData(mimeData, clipboardMode_); } void ScintillaQt::Copy() |