diff options
author | Lluis Sanchez <lluis@novell.com> | 2009-05-29 00:55:40 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2009-05-29 00:55:40 +0400 |
commit | 4c1c891bbe798eb6962ed8ba19b8351b741eb2ca (patch) | |
tree | ee45c1d4ef79bf342a7d3ee9b8bc6f9818451241 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components | |
parent | e28d5150cbc1aeef432b805f8d037291e34632ab (diff) |
* MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs: Don't try to
remove invalid iters from the nodeOptions hash, since invalid iters
can't generate a hash.
* MonoDevelop.Ide.Gui/DisplayBindingService.cs: Fix null ref.
svn path=/trunk/monodevelop/; revision=134997
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs index 37c0ce83c5..71e7580cca 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs @@ -405,6 +405,7 @@ namespace MonoDevelop.Ide.Gui.Components TransactedNodeStore store = transactionStore; transactionStore = null; store.CommitChanges (); + CleanupNodeOptions (); } } @@ -1269,7 +1270,8 @@ namespace MonoDevelop.Ide.Gui.Components } } - nodeOptions.Remove (iter); + if (store.IterIsValid (iter)) + nodeOptions.Remove (iter); object currentIt = nodeHash [dataObject]; if (currentIt is Gtk.TreeIter[]) { Gtk.TreeIter[] arr = (Gtk.TreeIter[]) currentIt; @@ -1289,6 +1291,16 @@ namespace MonoDevelop.Ide.Gui.Components NotifyNodeRemoved (dataObject, chain); } } + + internal void CleanupNodeOptions () + { + Dictionary<Gtk.TreeIter, TreeOptions> newOps = new Dictionary<Gtk.TreeIter, TreeOptions> (); + foreach (KeyValuePair<Gtk.TreeIter,TreeOptions> val in nodeOptions) { + if (store.IterIsValid (val.Key)) + newOps [val.Key] = val.Value; + } + nodeOptions = newOps; + } void NotifyNodeRemoved (object dataObject, NodeBuilder[] chain) { |