From 46384b68eb83bf728c19a12f93505751f61633df Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Tue, 5 Dec 2017 23:45:16 +0100 Subject: [PATCH] Fixes bugs in focus mode (#259) --- manuskript/ui/highlighters/markdownHighlighter.py | 2 +- manuskript/ui/views/MDEditView.py | 5 ++++- manuskript/ui/views/textEditView.py | 7 ------- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/manuskript/ui/highlighters/markdownHighlighter.py b/manuskript/ui/highlighters/markdownHighlighter.py index b5f3c74..d68aa50 100644 --- a/manuskript/ui/highlighters/markdownHighlighter.py +++ b/manuskript/ui/highlighters/markdownHighlighter.py @@ -105,7 +105,7 @@ class MarkdownHighlighter(BasicHighlighter): line = block.layout().lineAt(i) start = line.textStart() end = line.textStart() + line.textLength() - if start <= pos < end: + if start <= pos <= end: return (start, end) else: return True diff --git a/manuskript/ui/views/MDEditView.py b/manuskript/ui/views/MDEditView.py index 447ec00..93cdd30 100644 --- a/manuskript/ui/views/MDEditView.py +++ b/manuskript/ui/views/MDEditView.py @@ -3,7 +3,7 @@ import re -from PyQt5.QtCore import QRegExp, Qt +from PyQt5.QtCore import QRegExp, Qt, QTimer from PyQt5.QtGui import QTextCursor # from PyQt5.QtWidgets import @@ -173,6 +173,9 @@ class MDEditView(textEditView): def cursorPositionHasChanged(self): self.centerCursor() + # Focus mode + if self.highlighter: + QTimer.singleShot(50, self.highlighter.rehighlight) def centerCursor(self, force=False): cursor = self.cursorRect() diff --git a/manuskript/ui/views/textEditView.py b/manuskript/ui/views/textEditView.py index 330dcf9..fd19fe3 100644 --- a/manuskript/ui/views/textEditView.py +++ b/manuskript/ui/views/textEditView.py @@ -67,9 +67,6 @@ class textEditView(QTextEdit): # self.document().contentsChanged.connect(lambda: print(self.objectName(), "Contents changed")) - # Focus mode - self.cursorPositionChanged.connect(self.cursorHasMoved) - self.setEnabled(False) if index: @@ -94,10 +91,6 @@ class textEditView(QTextEdit): self.highlighter = self._highlighterClass(self) self.highlighter.setDefaultBlockFormat(self._defaultBlockFormat) - def cursorHasMoved(self): - if self.highlighter: - self.highlighter.rehighlight() - def getDefaultLocale(self): default_locale = enchant.get_default_language() if default_locale is None: