diff -r aabf2c525e0f -r 9f56a4e1b8ab uifw/AvKon/aknhlist/src/akntreelist.cpp --- a/uifw/AvKon/aknhlist/src/akntreelist.cpp Fri Mar 12 15:43:43 2010 +0200 +++ b/uifw/AvKon/aknhlist/src/akntreelist.cpp Mon Mar 15 12:41:34 2010 +0200 @@ -391,6 +391,29 @@ { Window().Invalidate( View().Rect() ); } + + // Update the marking of upper level node + CAknTreeItem* item = Tree().Item( aItem ); + if ( item && item->Parent() && item->Parent()->IsNode() ) + { + CAknTreeNode* node = item->Parent()->Node(); + TBool wasMarked = node->IsMarked(); + if ( node && node->IsMarkable() ) + { + if ( node->AllChildrenMarked() ) + { + node->SetMarked( ETrue ); + } + else + { + node->SetMarked( EFalse ); + } + } + if ( wasMarked != node->IsMarked() ) + { + Window().Invalidate( View().Rect() ); + } + } }