@@ -298,7 +298,8 @@ protected override void OnMouseClick(MouseEventArgs e)
298298 {
299299 Address = containerNode . Offset . Add ( n . Offset ) ,
300300 Node = n ,
301- Memory = first . Memory
301+ Memory = first . Memory ,
302+ Level = first . Level
302303 } ) )
303304 {
304305 spot . Node . IsSelected = true ;
@@ -477,7 +478,7 @@ protected override void OnMouseHover(EventArgs e)
477478
478479 if ( selectedNodes . Count > 1 )
479480 {
480- var memorySize = selectedNodes . Select ( h => h . Node . MemorySize ) . Sum ( ) ;
481+ var memorySize = selectedNodes . Sum ( h => h . Node . MemorySize ) ;
481482 nodeInfoToolTip . Show ( $ "{ selectedNodes . Count } Nodes selected, { memorySize } bytes", this , toolTipPosition . OffsetEx ( 16 , 16 ) ) ;
482483 }
483484 else
@@ -596,7 +597,7 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
596597 isAtEnd = toSelect != null && toSelect == temp . FirstOrDefault ( ) ;
597598 }
598599
599- if ( toSelect != null )
600+ if ( toSelect != null && ! ( toSelect . Node is ClassNode ) )
600601 {
601602 if ( modifier != Keys . Shift )
602603 {
@@ -620,7 +621,8 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
620621 {
621622 Address = containerNode . Offset . Add ( n . Offset ) ,
622623 Node = n ,
623- Memory = toSelect . Memory
624+ Memory = toSelect . Memory ,
625+ Level = toSelect . Level
624626 } ) )
625627 {
626628 spot . Node . IsSelected = true ;
@@ -639,6 +641,14 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
639641 return true ;
640642 }
641643 }
644+ else if ( key == Keys . Left || key == Keys . Right )
645+ {
646+ if ( selectedNodes . Count == 1 )
647+ {
648+ var selected = selectedNodes [ 0 ] ;
649+ selected . Node . ToggleLevelOpen ( selected . Level ) ;
650+ }
651+ }
642652 }
643653 else if ( key == Keys . Down || key == Keys . Up )
644654 {
@@ -972,7 +982,8 @@ public void ReplaceSelectedNodesWithType(Type type)
972982 {
973983 Memory = selected . Memory ,
974984 Address = n . ParentNode . Offset . Add ( n . Offset ) ,
975- Node = n
985+ Node = n ,
986+ Level = selected . Level
976987 } )
977988 ) ;
978989 }
0 commit comments