Commit 9ef62848 authored by mae's avatar mae
Browse files

avoid parentheses matching flicker when navigationt to block end / start.

parent f2f9e8a8
...@@ -602,29 +602,44 @@ void BaseTextEditor::slotSelectionChanged() ...@@ -602,29 +602,44 @@ void BaseTextEditor::slotSelectionChanged()
void BaseTextEditor::gotoBlockStart() void BaseTextEditor::gotoBlockStart()
{ {
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();
if (TextBlockUserData::findPreviousOpenParenthesis(&cursor, false)) if (TextBlockUserData::findPreviousOpenParenthesis(&cursor, false)) {
setTextCursor(cursor); setTextCursor(cursor);
_q_matchParentheses();
}
} }
void BaseTextEditor::gotoBlockEnd() void BaseTextEditor::gotoBlockEnd()
{ {
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();
if (TextBlockUserData::findNextClosingParenthesis(&cursor, false)) if (TextBlockUserData::findNextClosingParenthesis(&cursor, false)) {
setTextCursor(cursor); setTextCursor(cursor);
_q_matchParentheses();
}
} }
void BaseTextEditor::gotoBlockStartWithSelection() void BaseTextEditor::gotoBlockStartWithSelection()
{ {
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();
if (TextBlockUserData::findPreviousOpenParenthesis(&cursor, true)) if (TextBlockUserData::findPreviousOpenParenthesis(&cursor, true)) {
setTextCursor(cursor); setTextCursor(cursor);
_q_matchParentheses();
}
} }
void BaseTextEditor::gotoBlockEndWithSelection() void BaseTextEditor::gotoBlockEndWithSelection()
{ {
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();
if (TextBlockUserData::findNextClosingParenthesis(&cursor, true)) if (TextBlockUserData::findNextClosingParenthesis(&cursor, true)) {
setTextCursor(cursor); setTextCursor(cursor);
_q_matchParentheses();
}
}
static QTextCursor flippedCursor(const QTextCursor &cursor) {
QTextCursor flipped = cursor;
flipped.clearSelection();
flipped.setPosition(cursor.anchor(), QTextCursor::KeepAnchor);
return flipped;
} }
void BaseTextEditor::selectBlockUp() void BaseTextEditor::selectBlockUp()
...@@ -640,7 +655,8 @@ void BaseTextEditor::selectBlockUp() ...@@ -640,7 +655,8 @@ void BaseTextEditor::selectBlockUp()
return; return;
if (!TextBlockUserData::findNextClosingParenthesis(&cursor, true)) if (!TextBlockUserData::findNextClosingParenthesis(&cursor, true))
return; return;
setTextCursor(cursor); setTextCursor(flippedCursor(cursor));
_q_matchParentheses();
} }
void BaseTextEditor::selectBlockDown() void BaseTextEditor::selectBlockDown()
...@@ -663,7 +679,8 @@ void BaseTextEditor::selectBlockDown() ...@@ -663,7 +679,8 @@ void BaseTextEditor::selectBlockDown()
if ( cursor != d->m_selectBlockAnchor) if ( cursor != d->m_selectBlockAnchor)
TextBlockUserData::findNextClosingParenthesis(&cursor, true); TextBlockUserData::findNextClosingParenthesis(&cursor, true);
setTextCursor(cursor); setTextCursor(flippedCursor(cursor));
_q_matchParentheses();
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment