uifw/EikStd/coctlsrc/EIKMENUB.CPP
branchRCL_3
changeset 25 941195f2d488
parent 23 3d340a0166ff
child 29 a8834a2e9a96
--- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP	Tue May 11 16:27:42 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP	Tue May 25 12:58:19 2010 +0300
@@ -177,6 +177,7 @@
             {
             TBool dimCommands( EFalse );
             TBool changeState( EFalse );
+            TBool dimMarkAndUnmark( EFalse ); 
             if ( iItemActionMenu->MarkingMode().MultipleMarkingActive() )
                 {
                 changeState = ETrue;
@@ -184,13 +185,30 @@
                 }
             else if ( !iItemActionMenu->CollectionHighlightVisible() )
                 {
-                changeState = ETrue;
-                dimCommands = ETrue;
+                if ( iItemActionMenu->CollectionHasMarkedItems() )
+                    {
+                    TInt pos; 
+                    if ( iBar->iMenuPane->MenuItemExists( EAknCmdMark, pos ) ) 
+                        {
+                        iBar->iMenuPane->SetItemDimmed( EAknCmdMark, ETrue ); 
+                        }
+                    if ( iBar->iMenuPane->MenuItemExists( EAknCmdUnmark, pos ) ) 
+                        {
+                        iBar->iMenuPane->SetItemDimmed( EAknCmdUnmark, ETrue ); 
+                        } 
+                    dimMarkAndUnmark = ETrue; 
+                    }
+                else 
+                    {
+                    changeState = ETrue;
+                    dimCommands = ETrue;
+                    }
                 }
             if ( changeState )
                 {
                 iBar->iMenuPane->SetItemCommandsStateL( dimCommands );
                 }
+            iBar->iMenuPane->HideMarkAndUnmark( dimMarkAndUnmark ); 
             }
         else if ( iSingleClickEnabled )
             {
@@ -973,9 +991,11 @@
                     ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
                     iMenuPane );
         if ( iActiveEditMenuObserver )
+            {
             iActiveEditMenuObserver->DynInitMenuPaneL(
                     ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
                     iMenuPane );
+            }
 
         titles = iTitleArray->Count() - 2;
         iMenuPane->FilterDimmedItems();
@@ -991,14 +1011,16 @@
             if ( fepMenuObserver )
                 fepMenuObserver->DynInitMenuPaneL( resource, iMenuPane );
             if ( iActiveEditMenuObserver )
+                {
                 iActiveEditMenuObserver->DynInitMenuPaneL(
                         resource,iMenuPane );
+                }
 
             if ( resource == R_AVKON_MENUPANE_MARK_MULTIPLE )
                 {
                 iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
                 }
-
+            iMenuPane->FilterDimmedItems();
             titles--;
             }
         iExt->SetItemCommandsStateL();
@@ -1100,9 +1122,13 @@
     
     iMenuPane->SetFocus(ETrue);
     if (fepMenuObserver)
+        {
         fepMenuObserver->SetEmphasis(this, ETrue);
+        }        
     if (iActiveEditMenuObserver)
+        {
         iActiveEditMenuObserver->SetEmphasis(this, ETrue);
+        }
     
     // Set the position of the menu pane to the top of the CBA area, 
     // and set the width to the width of the screen