forked from qt-creator/qt-creator
TextEditor: Fix extra selection for snippets to match the editable area.
Task-number: QTCREATORBUG-2099 Reviewed-by: mae
This commit is contained in:
@@ -1452,7 +1452,7 @@ void BaseTextEditor::insertCodeSnippet(const QTextCursor &cursor_arg, const QStr
|
|||||||
if (textToInsert.isEmpty()) {
|
if (textToInsert.isEmpty()) {
|
||||||
positions.insert(cursorPosition, 0);
|
positions.insert(cursorPosition, 0);
|
||||||
} else {
|
} else {
|
||||||
positions.insert(cursorPosition-1, textToInsert.length()+1);
|
positions.insert(cursorPosition, textToInsert.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
++pos;
|
++pos;
|
||||||
@@ -1485,7 +1485,7 @@ void BaseTextEditor::insertCodeSnippet(const QTextCursor &cursor_arg, const QStr
|
|||||||
|
|
||||||
cursor = textCursor();
|
cursor = textCursor();
|
||||||
if (selection.cursor.hasSelection()) {
|
if (selection.cursor.hasSelection()) {
|
||||||
cursor.setPosition(selection.cursor.selectionStart()+1);
|
cursor.setPosition(selection.cursor.selectionStart());
|
||||||
cursor.setPosition(selection.cursor.selectionEnd(), QTextCursor::KeepAnchor);
|
cursor.setPosition(selection.cursor.selectionEnd(), QTextCursor::KeepAnchor);
|
||||||
} else {
|
} else {
|
||||||
cursor.setPosition(selection.cursor.position());
|
cursor.setPosition(selection.cursor.position());
|
||||||
@@ -2020,7 +2020,7 @@ void BaseTextEditorPrivate::snippetTabOrBacktab(bool forward)
|
|||||||
if (final.m_cursor_begin.position() == final.m_cursor_end.position()) { // empty tab stop
|
if (final.m_cursor_begin.position() == final.m_cursor_end.position()) { // empty tab stop
|
||||||
cursor.setPosition(final.m_cursor_end.position());
|
cursor.setPosition(final.m_cursor_end.position());
|
||||||
} else {
|
} else {
|
||||||
cursor.setPosition(final.m_cursor_begin.position()+1);
|
cursor.setPosition(final.m_cursor_begin.position());
|
||||||
cursor.setPosition(final.m_cursor_end.position(), QTextCursor::KeepAnchor);
|
cursor.setPosition(final.m_cursor_end.position(), QTextCursor::KeepAnchor);
|
||||||
}
|
}
|
||||||
q->setTextCursor(cursor);
|
q->setTextCursor(cursor);
|
||||||
|
|||||||
@@ -442,11 +442,14 @@ void TextEditorOverlay::fill(QPainter *painter, const QColor &color, const QRect
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \returns true if any selection contains \a cursor, where a cursor on the
|
||||||
|
start or end of a selection is counted as contained.
|
||||||
|
*/
|
||||||
bool TextEditorOverlay::hasCursorInSelection(const QTextCursor &cursor) const
|
bool TextEditorOverlay::hasCursorInSelection(const QTextCursor &cursor) const
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_selections.size(); ++i) {
|
for (int i = 0; i < m_selections.size(); ++i) {
|
||||||
const OverlaySelection &selection = m_selections.at(i);
|
const OverlaySelection &selection = m_selections.at(i);
|
||||||
if (cursor.position() > selection.m_cursor_begin.position()
|
if (cursor.position() >= selection.m_cursor_begin.position()
|
||||||
&& cursor.position() <= selection.m_cursor_end.position())
|
&& cursor.position() <= selection.m_cursor_end.position())
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user