diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-08-17 13:26:53 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-08-17 13:26:53 (GMT) |
commit | 3ed49d84c8a2951bcadcf90eb0e1ae37df2b9a81 (patch) | |
tree | 9ccf9cd80df5d68dd11c82b069e288a02c4475ac | |
parent | e30e6e1502e33bf5d1b4d9536a17c9fac9866bbe (diff) | |
parent | a2709ef3f4410a1d1755e00353e6f969f8bb5613 (diff) | |
download | Qt-3ed49d84c8a2951bcadcf90eb0e1ae37df2b9a81.zip Qt-3ed49d84c8a2951bcadcf90eb0e1ae37df2b9a81.tar.gz Qt-3ed49d84c8a2951bcadcf90eb0e1ae37df2b9a81.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Symbian: Fix backspace on empty lines of multiline textedits
-rw-r--r-- | src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index 2202d3a..e22e27c 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -1089,7 +1089,18 @@ TInt QCoeFepInputContext::DocumentLengthForFep() const return 0; QVariant variant = w->inputMethodQuery(Qt::ImSurroundingText); - return variant.value<QString>().size() + m_preeditString.size(); + + int size = variant.value<QString>().size() + m_preeditString.size(); + + // To fix an issue with backspaces not being generated if document size is zero, + // fake document length to be at least one always, except when dealing with + // hidden text widgets, where this faking would generate extra asterisk. Since the + // primary use of hidden text widgets is password fields, they are unlikely to + // support multiple lines anyway. + if (size == 0 && !(m_textCapabilities & TCoeInputCapabilities::ESecretText)) + size = 1; + + return size; } TInt QCoeFepInputContext::DocumentMaximumLengthForFep() const @@ -1172,6 +1183,12 @@ void QCoeFepInputContext::GetEditorContentForFep(TDes& aEditorContent, TInt aDoc // FEP expects the preedit string to be part of the editor content, so let's mix it in. int cursor = w->inputMethodQuery(Qt::ImCursorPosition).toInt(); text.insert(cursor, m_preeditString); + + // Add additional space to empty non-password text to compensate + // for the fake length we specified in DocumentLengthForFep(). + if (text.size() == 0 && !(m_textCapabilities & TCoeInputCapabilities::ESecretText)) + text += QChar(0x20); + aEditorContent.Copy(qt_QString2TPtrC(text.mid(aDocumentPosition, aLengthToRetrieve))); } |