uifw/EikStd/coctlsrc/EIKCTGRP.CPP
branchRCL_3
changeset 72 a5e7a4f63858
parent 64 85902f042028
--- 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;