diff options
author | Riikka Inkila <ext-riikka.j.inkila@nokia.com> | 2012-04-13 08:50:53 (GMT) |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-13 12:27:35 (GMT) |
commit | 94df302a8d62c995dedadce0f9a9519a158fd369 (patch) | |
tree | 310da325d9a57e5ab37d456d2a39d982fce34727 /src/gui/inputmethod | |
parent | fdfd48e25278517397a1aded0455a3bddec27b66 (diff) | |
download | Qt-94df302a8d62c995dedadce0f9a9519a158fd369.zip Qt-94df302a8d62c995dedadce0f9a9519a158fd369.tar.gz Qt-94df302a8d62c995dedadce0f9a9519a158fd369.tar.bz2 |
Symbian: avoid crash when inline editing is canceled
Native side editor state sync request was added into
QCoeFepInputContext::CancelFepInlineEdit method to fix QTBUG-20919:
text prediction word list/bubble didn't disappear from TextArea/
TextField after a tap and the issue was fixed with the sync request.
However Symbian AknFEP was changed in Belle FP1 release so that this
sync request is no longer needed to get rid of the exact word bubble
when inline editing is canceled with a tap and it can actually
currently lead to a crash in the native side with certain input methods
as AknFEP doesn't expect FEP-aware text editors to request editor state
sync within MCoeFepAwareTextEditor::CancelFepInlineEdit call.
Thus the sync request should be made only with older Symbian releases.
Task-number: ou1cimx1#983695
Change-Id: Iab7753bbe8b279f89abc1853824a83ad210c5440
Reviewed-by: Pasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com>
Reviewed-by: Juha Kukkonen <ext-juha.kukkonen@nokia.com>
Diffstat (limited to 'src/gui/inputmethod')
-rw-r--r-- | src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index 62553d8..44a54a3 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -1501,9 +1501,10 @@ void QCoeFepInputContext::CancelFepInlineEdit() m_inlinePosition = 0; sendEvent(event); - // Sync with native side editor state. Native side can then do various operations - // based on editor state, such as removing 'exact word bubble'. - if (!m_pendingInputCapabilitiesChanged) + // Prior to S60 5.4 need to sync with native side editor state so that native side can then do + // various operations based on editor state, such as removing 'exact word bubble'. + // Starting with S60 5.4 this sync request is not needed and can actually lead to a crash. + if (QSysInfo::s60Version() < QSysInfo::SV_S60_5_4 && !m_pendingInputCapabilitiesChanged) ReportAknEdStateEvent(MAknEdStateObserver::EAknSyncEdwinState); } QT_CATCH(const std::exception&) { m_preeditString.clear(); |