diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp index 1f16fab7b88f09deef823eab9f0c442b51f15f12..2695bf0c903e51f962be2460a74b1e94d2875112 100644 --- a/src/plugins/bineditor/bineditor.cpp +++ b/src/plugins/bineditor/bineditor.cpp @@ -940,19 +940,18 @@ void BinEditor::setCursorPosition(int pos, MoveMode moveMode) pos = qMin(m_size-1, qMax(0, pos)); int oldCursorPosition = m_cursorPosition; - bool hasSelection = m_anchorPosition != m_cursorPosition; + bool hadSelection = hasSelection(); m_lowNibble = false; - if (!hasSelection) + if (!hadSelection) updateLines(); m_cursorPosition = pos; if (moveMode == MoveAnchor) { - if (hasSelection) + if (hadSelection) updateLines(m_anchorPosition, oldCursorPosition); m_anchorPosition = m_cursorPosition; } - hasSelection = m_anchorPosition != m_cursorPosition; - updateLines(hasSelection ? oldCursorPosition : m_cursorPosition, m_cursorPosition); + updateLines(hadSelection || hasSelection() ? oldCursorPosition : m_cursorPosition, m_cursorPosition); ensureCursorVisible(); emit cursorPositionChanged(m_cursorPosition); }