diff -r 5dc02b23752f -r 3e2da88830cd src/gui/widgets/qlineedit.cpp --- a/src/gui/widgets/qlineedit.cpp Tue Jul 06 15:10:48 2010 +0300 +++ b/src/gui/widgets/qlineedit.cpp Wed Aug 18 10:37:55 2010 +0300 @@ -1663,8 +1663,11 @@ } #endif d->control->processKeyEvent(event); - if (event->isAccepted()) + if (event->isAccepted()) { + if (layoutDirection() != d->control->layoutDirection()) + setLayoutDirection(d->control->layoutDirection()); d->control->setCursorBlinkPeriod(0); + } } /*! @@ -1860,7 +1863,7 @@ p.setClipRect(r); QFontMetrics fm = fontMetrics(); - Qt::Alignment va = QStyle::visualAlignment(layoutDirection(), QFlag(d->alignment)); + Qt::Alignment va = QStyle::visualAlignment(d->control->layoutDirection(), QFlag(d->alignment)); switch (va & Qt::AlignVertical_Mask) { case Qt::AlignBottom: d->vscroll = r.y() + r.height() - fm.height() - d->verticalMargin; @@ -2161,9 +2164,6 @@ } update(); break; - case QEvent::LayoutDirectionChange: - d->control->setLayoutDirection(layoutDirection()); - break; default: break; }