diff -r 85902f042028 -r a5e7a4f63858 uifw/EikStd/coctlsrc/EIKCTGRP.CPP --- a/uifw/EikStd/coctlsrc/EIKCTGRP.CPP Wed Sep 15 12:29:17 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKCTGRP.CPP Wed Oct 13 14:50:15 2010 +0300 @@ -348,11 +348,23 @@ { TInt count = iControlArray->Count(); - // count == 4 means MSK is on, but when it is disabled by EDisableMSKDrawing, - // we should decrease the count to avoid drawing it. - if ( count == 4 && ( iLayout & EDisableMSKDrawing ) ) - { - count--; + // This prevents MSK from drawing in landscape layouts. + // Also MSK doesn't even need to be activated in landscape modes. + if ( count == 4 ) + { + // Exception is made for idle flat status pane layouts, + // in which the MSK is used also in landscape. + TBool mskSupportedLscLayoutActive( + AVKONENV->StatusPaneResIdForCurrentLayout( + AknStatuspaneUtils::CurrentStatusPaneLayoutResId() ) == + R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS ); + + if ( iLayout & EDisableMSKDrawing || + ( Layout_Meta_Data::IsLandscapeOrientation() && + !mskSupportedLscLayoutActive ) ) + { + count--; + } } return count;