diff -r dee5afe5301f -r 3f74d0d4af4c src/gui/widgets/qlinecontrol.cpp --- a/src/gui/widgets/qlinecontrol.cpp Mon Mar 15 12:43:09 2010 +0200 +++ b/src/gui/widgets/qlinecontrol.cpp Thu Apr 08 14:19:33 2010 +0300 @@ -65,7 +65,7 @@ Updates the display text based of the current edit text If the text has changed will emit displayTextChanged() */ -void QLineControl::updateDisplayText() +void QLineControl::updateDisplayText(bool forceUpdate) { QString orig = m_textLayout.text(); QString str; @@ -102,7 +102,7 @@ m_textLayout.endLayout(); m_ascent = qRound(l.ascent()); - if (str != orig) + if (str != orig || forceUpdate) emit displayTextChanged(str); } @@ -476,7 +476,7 @@ } } m_textLayout.setAdditionalFormats(formats); - updateDisplayText(); + updateDisplayText(/*force*/ true); if (cursorPositionChanged) emitCursorPositionChanged(); if (isGettingInput) @@ -1371,6 +1371,8 @@ processInputMethodEvent(static_cast(ev)); break; #ifndef QT_NO_SHORTCUT case QEvent::ShortcutOverride:{ + if (isReadOnly()) + return false; QKeyEvent* ke = static_cast(ev); if (ke == QKeySequence::Copy || ke == QKeySequence::Paste