Browse Source

Only modify focus if all previously selected nodes have been removed.

pull/306/merge
Ed Harvey 14 years ago
parent
commit
1dfef66912
  1. 10
      SharpTreeView/SharpTreeView.cs

10
SharpTreeView/SharpTreeView.cs

@ -151,11 +151,13 @@ namespace ICSharpCode.TreeView @@ -151,11 +151,13 @@ namespace ICSharpCode.TreeView
if (selectedOldItems != null) {
var list = SelectedItems.Cast<SharpTreeNode>().Except(selectedOldItems).ToList();
SetSelectedItems(list);
if (SelectedItem == null) {
// if we removed all selected nodes, then move the focus to the node
// preceding the first of the old selected nodes
SelectedIndex = Math.Max(0, e.OldStartingIndex - 1);
FocusNode((SharpTreeNode)SelectedItem);
}
}
// reset the focus to the previous node
SelectedIndex = Math.Max(0, e.OldStartingIndex - 1);
if (SelectedItem != null)
FocusNode((SharpTreeNode)SelectedItem);
}
}

Loading…
Cancel
Save