Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2009-05-29 00:55:40 +0400
committerLluis Sanchez <lluis@novell.com>2009-05-29 00:55:40 +0400
commit4c1c891bbe798eb6962ed8ba19b8351b741eb2ca (patch)
treeee45c1d4ef79bf342a7d3ee9b8bc6f9818451241 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components
parente28d5150cbc1aeef432b805f8d037291e34632ab (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.cs14
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)
{