diff options
Diffstat (limited to 'src/qtquick1/graphicsitems/qdeclarativetextedit.cpp')
-rw-r--r-- | src/qtquick1/graphicsitems/qdeclarativetextedit.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/qtquick1/graphicsitems/qdeclarativetextedit.cpp b/src/qtquick1/graphicsitems/qdeclarativetextedit.cpp index 777d964716..27ef5438ef 100644 --- a/src/qtquick1/graphicsitems/qdeclarativetextedit.cpp +++ b/src/qtquick1/graphicsitems/qdeclarativetextedit.cpp @@ -553,7 +553,15 @@ bool QDeclarative1TextEditPrivate::determineHorizontalAlignment() { Q_Q(QDeclarative1TextEdit); if (hAlignImplicit && q->isComponentComplete()) { - bool alignToRight = text.isEmpty() ? QApplication::keyboardInputDirection() == Qt::RightToLeft : rightToLeftText; + bool alignToRight; + if (text.isEmpty()) { + const QString preeditText = control->textCursor().block().layout()->preeditAreaText(); + alignToRight = preeditText.isEmpty() + ? QApplication::keyboardInputDirection() == Qt::RightToLeft + : preeditText.isRightToLeft(); + } else { + alignToRight = rightToLeftText; + } return setHAlign(alignToRight ? QDeclarative1TextEdit::AlignRight : QDeclarative1TextEdit::AlignLeft); } return false; @@ -1589,6 +1597,7 @@ void QDeclarative1TextEdit::q_textChanged() void QDeclarative1TextEdit::moveCursorDelegate() { Q_D(QDeclarative1TextEdit); + d->determineHorizontalAlignment(); updateMicroFocus(); emit cursorRectangleChanged(); if(!d->cursor) |