Browse Source

make cursor visible after highlight completed

Highlight may turn originlly visible cursor partially visible. We make
it visible in this case.
Le Tan 8 years ago
parent
commit
443ee772a7
1 changed files with 13 additions and 0 deletions
  1. 13 0
      src/vmdedit.cpp

+ 13 - 0
src/vmdedit.cpp

@@ -26,6 +26,19 @@ VMdEdit::VMdEdit(VFile *p_file, VDocument *p_vdoc, MarkdownConverterType p_type,
     connect(m_mdHighlighter, &HGMarkdownHighlighter::highlightCompleted,
             this, &VMdEdit::generateEditOutline);
 
+    // After highlight, the cursor may trun into non-visible. We should make it visible
+    // in this case.
+    connect(m_mdHighlighter, &HGMarkdownHighlighter::highlightCompleted,
+            this, [this]() {
+        QRect rect = this->cursorRect();
+        QRect viewRect = this->rect();
+        if ((rect.y() < viewRect.height()
+             && rect.y() + rect.height() > viewRect.height())
+            || (rect.y() < 0 && rect.y() + rect.height() > 0)) {
+            this->ensureCursorVisible();
+        }
+    });
+
     m_cbHighlighter = new VCodeBlockHighlightHelper(m_mdHighlighter, p_vdoc,
                                                     p_type);