summaryrefslogtreecommitdiffstats
path: root/deps/qt5/patches
diff options
context:
space:
mode:
Diffstat (limited to 'deps/qt5/patches')
-rw-r--r--deps/qt5/patches/qt5.delayed_highlight.patch72
-rw-r--r--deps/qt5/patches/qt5.qtbug-69310.patch37
2 files changed, 109 insertions, 0 deletions
diff --git a/deps/qt5/patches/qt5.delayed_highlight.patch b/deps/qt5/patches/qt5.delayed_highlight.patch
new file mode 100644
index 0000000..201179b
--- /dev/null
+++ b/deps/qt5/patches/qt5.delayed_highlight.patch
@@ -0,0 +1,72 @@
+From f8f0f3eef1151c9377a5c76ccfa6432e930e1307 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
+Date: Mon, 14 Jan 2019 10:37:42 +0100
+Subject: QSyntaxHighlighter: cancel delayed highlight if done manually
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It was an implicit effect before which stopped working after
+dec7961709c90f6977d2447f7fa6c6625af41cb2. Reintroduce it as some
+projects used this side-effect as a way to abort the initial
+highlighting.
+
+Change-Id: I5340ee9882a242bc8b5f7f843f1cfe793a65d357
+Reviewed-by: J?drzej Nowacki <jedrzej.nowacki@qt.io>
+---
+ src/gui/text/qsyntaxhighlighter.cpp | 1 +
+ .../qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp | 19 +++++++++++++++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/src/gui/text/qsyntaxhighlighter.cpp b/src/gui/text/qsyntaxhighlighter.cpp
+index b09f8b565a..0e07b69868 100644
+--- a/src/gui/text/qsyntaxhighlighter.cpp
++++ b/src/gui/text/qsyntaxhighlighter.cpp
+@@ -376,6 +376,7 @@ void QSyntaxHighlighter::rehighlight()
+
+ QTextCursor cursor(d->doc);
+ d->rehighlight(cursor, QTextCursor::End);
++ d->rehighlightPending = false; // user manually did a full rehighlight
+ }
+
+ /*!
+diff --git a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
+index 9d6ce78b24..c683ecd424 100644
+--- a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
++++ b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
+@@ -82,6 +82,7 @@ private slots:
+ void preservePreeditArea();
+ void task108530();
+ void avoidUnnecessaryRehighlight();
++ void avoidUnnecessaryDelayedRehighlight();
+ void noContentsChangedDuringHighlight();
+ void rehighlight();
+ void rehighlightBlock();
+@@ -478,6 +479,24 @@ void tst_QSyntaxHighlighter::avoidUnnecessaryRehighlight()
+ QTRY_VERIFY(!hl->highlighted);
+ }
+
++void tst_QSyntaxHighlighter::avoidUnnecessaryDelayedRehighlight()
++{
++ // Having text in the document before creating the highlighter starts the delayed rehighlight
++ cursor.insertText("Hello World");
++
++ TestHighlighter *hl = new TestHighlighter(doc);
++ QVERIFY(!hl->highlighted);
++
++ hl->rehighlight();
++ QVERIFY(hl->highlighted);
++
++ hl->highlighted = false;
++ // Process events, including delayed rehighlight emission
++ QCoreApplication::processEvents();
++ // Should be cancelled and no extra rehighlight should be done
++ QVERIFY(!hl->highlighted);
++}
++
+ void tst_QSyntaxHighlighter::noContentsChangedDuringHighlight()
+ {
+ QVector<QTextLayout::FormatRange> formats;
+--
+cgit v1.2.1
+
diff --git a/deps/qt5/patches/qt5.qtbug-69310.patch b/deps/qt5/patches/qt5.qtbug-69310.patch
new file mode 100644
index 0000000..b924627
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-69310.patch
@@ -0,0 +1,37 @@
+From fcba9fa861574f33e1d2e54d8c8d6da8062927cd Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@qt.io>
+Date: Wed, 23 Jan 2019 10:42:12 +0100
+Subject: Fix regression in QPlainTextEdit updating
+
+It was incorrectly counting a block having more than one line as having
+changed visibility.
+
+Fixes: QTBUG-69310
+Change-Id: I502cda1d3e8a4efb1c14122353cc0a4731d8581c
+Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
+---
+ src/widgets/widgets/qplaintextedit.cpp | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp
+index d6f6a364a8..57f2dec8f7 100644
+--- a/src/widgets/widgets/qplaintextedit.cpp
++++ b/src/widgets/widgets/qplaintextedit.cpp
+@@ -312,10 +312,11 @@ void QPlainTextDocumentLayout::documentChanged(int from, int charsRemoved, int c
+ QTextBlock block = changeStartBlock;
+ do {
+ block.clearLayout();
+- const int lineCount = block.isVisible() ? 1 : 0;
+- if (block.lineCount() != lineCount) {
++ if (block.isVisible()
++ ? (block.lineCount() == 0)
++ : (block.lineCount() > 0)) {
+ blockVisibilityChanged = true;
+- block.setLineCount(lineCount);
++ block.setLineCount(block.isVisible() ? 1 : 0);
+ }
+ if (block == changeEndBlock)
+ break;
+--
+cgit v1.2.1
+