diff -r 85902f042028 -r a5e7a4f63858 uifw/AvKon/src/aknnavi.cpp --- a/uifw/AvKon/src/aknnavi.cpp Wed Sep 15 12:29:17 2010 +0300 +++ b/uifw/AvKon/src/aknnavi.cpp Wed Oct 13 14:50:15 2010 +0300 @@ -32,8 +32,6 @@ #include #include -#include - // USER INCLUDE FILES #include "aknenv.h" #include "AknDef.h" @@ -2010,47 +2008,26 @@ // void CAknNavigationControlContainer::HandleLosingForeground() { - // Get the top control on navi pane. + // If volume popup is shown when the navi pane loses foreground, + // then the popup needs to be closed if shown, and the volume control + // told that it's not the topmost control. CAknNavigationDecorator* topControl = Top(); if ( topControl ) { - switch( topControl->ControlType() ) + if ( topControl && + topControl->ControlType() == CAknNavigationDecorator::ENaviVolume ) { - case CAknNavigationDecorator::ENaviVolume: - { - // If volume popup is shown when the navi pane loses foreground, - // then the popup needs to be closed if shown, and the volume control - // told that it's not the topmost control. - CAknVolumePopup* volumePopup = - static_cast ( - topControl->iDecoratedControl ); + CAknVolumePopup* volumePopup = + static_cast ( + topControl->iDecoratedControl ); - if ( volumePopup ) - { - volumePopup->CloseVolumePopup(); - static_cast( - topControl->DecoratedControl() )->HandleNaviStackChange( EFalse ); - } - break; - } - case CAknNavigationDecorator::ETabGroup: + if ( volumePopup ) { - // If tabgroup is shown when navi pane loses foreground, forward - // KAknMessageFocusLost event to tabgroup. Tab panes will stop highlighting - // the pressed tab. - CAknTabGroup* tabGroup = - static_cast ( - topControl->iDecoratedControl ); - - if ( tabGroup ) - { - tabGroup->HandleResourceChange(KAknMessageFocusLost); - } - break; + volumePopup->CloseVolumePopup(); + static_cast( + topControl->DecoratedControl() )->HandleNaviStackChange( EFalse ); } - default: - break; } } }