diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/common/hbinputpredictionhandler.cpp --- a/src/hbplugins/inputmethods/common/hbinputpredictionhandler.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/common/hbinputpredictionhandler.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -41,8 +41,6 @@ #include "hbinputpredictionhandler_p.h" #include "hbinputabstractbase.h" -static const qreal HbDeltaHeight = 3.0; - HbInputPredictionHandlerPrivate::HbInputPredictionHandlerPrivate() :mEngine(0), mCandidates(0), @@ -61,6 +59,9 @@ delete mCandidates; mCandidates = 0; } + if (mSpellQueryDialog) { + mSpellQueryDialog->deleteLater(); + } } void HbInputPredictionHandlerPrivate::deleteOneCharacter() @@ -799,7 +800,6 @@ } if(!d->mSpellQueryDialog) { d->mSpellQueryDialog = new HbInputSpellQuery(d->mInputMethod,this); - d->mSpellQueryDialog->setParent(this); } QString string; @@ -841,7 +841,13 @@ if(abstractEdit) { abstractEdit->setCursorPosition(abstractEdit->cursorPosition()); } + if(HbInputMethod::activeInputMethod()->isFocusLocked()) { + HbInputMethod::activeInputMethod()->unlockFocus(); HbInputMethod::activeInputMethod()->setFocusObject(newFocusObject); + HbInputMethod::activeInputMethod()->lockFocus(); + } else { + HbInputMethod::activeInputMethod()->setFocusObject(newFocusObject); + } if (closeReason == HbInputSpellQuery::HbOkPressed) { d->commit(string,true);