diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 30a2011c982aaa59bf21b06f0ac6ca3303160231..986a8b868f7b6b00746adb41739db84cecdbd156 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -311,14 +311,15 @@ void DocumentWidget::setAutoSynchronization(bool sync) selectedNode = rewriter->selectedModelNodes().first(); if (selectedNode.isValid()) { - int nodeOffset = rewriter->nodeOffset(selectedNode); - QTextCursor editTextCursor = m_textBuffer->textCursor(); - if (nodeOffset > 0 - && nodeForPosition(editTextCursor.position()) != selectedNode) { - if (debug) - qDebug() << "Moving text cursor to " << nodeOffset; - editTextCursor.setPosition(nodeOffset); - m_textBuffer->setTextCursor(editTextCursor); + const int nodeOffset = rewriter->nodeOffset(selectedNode); + if (nodeOffset > 0) { + const ModelNode currentSelectedNode + = nodeForPosition(m_textBuffer->textCursor().position()); + if (currentSelectedNode != selectedNode) { + int line, column; + textEditor()->convertPosition(nodeOffset, &line, &column); + textEditor()->gotoLine(line, column); + } } } }