--- 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;