diff -r fcdfafb36fe7 -r aecbbf00d063 uifw/AvKon/src/AknAdaptiveSearch.cpp --- a/uifw/AvKon/src/AknAdaptiveSearch.cpp Thu Aug 19 10:11:06 2010 +0300 +++ b/uifw/AvKon/src/AknAdaptiveSearch.cpp Tue Aug 31 15:28:30 2010 +0300 @@ -257,6 +257,7 @@ TBuf criteria; if ( iSearchField->Editor().SelectionLength() > 0 ) { + iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria ); iSearchField->SetSearchTextL( criteria ); iSearchField->HandleControlEventL( iSearchField, EEventStateChanged ); } @@ -287,8 +288,13 @@ { criteria = criteria.Mid( 0, (length-1) ); } + // Update the AS search field first to be ready for redraw + iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria ); iSearchField->SetSearchTextL( criteria ); iSearchField->HandleControlEventL( iSearchField, EEventStateChanged ); + iSearchField->SetFocus( EFalse ); + iSearchField->MakeVisible ( EFalse ); + iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria ); iSearchField->DrawNow(); if( iAdaptiveSearchTextObserver ) { @@ -350,8 +356,12 @@ if ( IsIndicIndependentChar( criteria[length-1] ) ) criteria.Append( KLitHyphen ); + // Update the AS search field first to be ready for redraw + iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria ); iSearchField->SetSearchTextL( criteria ); iSearchField->HandleControlEventL( iSearchField, EEventStateChanged ); + iSearchField->SetFocus( EFalse ); + iSearchField->MakeVisible ( EFalse ); iSearchField->DrawNow(); if( iAdaptiveSearchTextObserver ) { @@ -440,7 +450,47 @@ void CAknAdaptiveSearch::InvertAdaptiveSearchGridVisibilityL( TBool aSelectAll ) { _AKNTRACE_FUNC_ENTER; - TBool shown ( !iAdaptiveSearchGrid->IsShown() ); + // update the search text here if showing + TInt textLength = 0; + if( !iAdaptiveSearchGrid->IsShown() && &(iSearchField->Editor()) ) + { + textLength = iSearchField->Editor().TextLength(); + HBufC* searchText = NULL; + TPtrC finalText( KNullDesC ); + if( textLength > 0 ) + { + TRAP_IGNORE( searchText = iSearchField->Editor().GetTextInHBufL() ); + if( searchText ) + { + finalText.Set( *searchText ); // set the value + _AKNDEBUG( + _LIT( KClassName, "CAknAdaptiveSearch" ); + _LIT( KFunctionName, "InvertAdaptiveSearchGridVisibilityL" ); + _LIT( KFormat, "[%S][%S] Final text is: %S"); + _AKNTRACE( KFormat, + &KClassName, &KFunctionName, &finalText ); + ); + } + } + iAdaptiveSearchGrid->SetSearchTextToFindPane( finalText ); + if( searchText ) + { + delete searchText; + searchText = NULL; + } + } + TBool shown( !(iAdaptiveSearchGrid->IsShown()) ); + if ( shown ) + { + iSearchField->SetFocus( EFalse ); + iSearchField->MakeVisible( EFalse ); + } + else + { + iSearchField->Editor().RemoveFlagFromUserFlags( CEikEdwin::EAvkonDisableVKB ); + iSearchField->MakeVisible( ETrue ); + iSearchField->SetFocus( ETrue ); + } iAdaptiveSearchGrid->SetVisibilityL( shown, aSelectAll ); _AKNTRACE_FUNC_EXIT; } @@ -487,18 +537,5 @@ iAdaptiveSearchGrid->HandleResourceChange(KAknsMessageSkinChange); } } - - -// ----------------------------------------------------------------------------- -// CCAknAdaptiveSearch::SaveFindPaneRect() -// When the rect of find pane is set, this functions will be notified -// to record the size of it. -// ----------------------------------------------------------------------------- -// -void CAknAdaptiveSearch::SaveFindPaneRect( const TRect &aRect ) - { - iAdaptiveSearchGrid->SaveFindPaneRect( aRect ); - } - // End of File