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

This commit is contained in:
mae
2008-12-05 17:06:17 +01:00
parent f2f9e8a831
commit 9ef62848ac

View File

@@ -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()
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()
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();
} }