--- 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() );
+ }
+ }
}