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
path: root/main
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@microsoft.com>2019-07-03 23:27:10 +0300
committerGitHub <noreply@github.com>2019-07-03 23:27:10 +0300
commitdc31a0df5fb7a741d77e09c24b686f8a834ee553 (patch)
tree4d4ace2ed6339b3928ad2c7240370a0efe8c7d43 /main
parentf3ad1fdf474bd4941170eda2ecabcb0fbfaad2bb (diff)
parent0e4524548539788e786ed955a352b7531bf3b9a6 (diff)
Merge pull request #8122 from mono/backport-pr-8087-to-release-8.2
[release-8.2] Fixes VSTS Bug 776934: TreeBuilderContext.GetTreeBuilder() null
Diffstat (limited to 'main')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs6
2 files changed, 17 insertions, 5 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 6d5c67b253..aa0a970ac5 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
@@ -2159,8 +2159,11 @@ namespace MonoDevelop.Ide.Gui.Components
SelectionChanged (this, EventArgs.Empty);
}
+ public bool IsDestroyed { get; set; }
+
void Destroy ()
{
+ IsDestroyed = true;
IdeApp.Preferences.CustomPadFont.Changed -= CustomFontPropertyChanged;
if (pix_render != null) {
pix_render.Destroy ();
@@ -2175,11 +2178,6 @@ namespace MonoDevelop.Ide.Gui.Components
text_render = null;
}
- if (store != null) {
- Clear ();
- store = null;
- }
-
if (builders != null) {
foreach (NodeBuilder nb in builders) {
try {
@@ -2190,6 +2188,12 @@ namespace MonoDevelop.Ide.Gui.Components
}
builders = null;
}
+
+ if (store != null) {
+ Clear ();
+ store = null;
+ }
+
builderChains.Clear ();
}
@@ -2229,6 +2233,8 @@ namespace MonoDevelop.Ide.Gui.Components
public ITreeBuilder GetTreeBuilder ()
{
+ if (pad.IsDestroyed)
+ throw new InvalidOperationException ("TreeView is destroyed.");
Gtk.TreeIter iter;
if (!pad.store.GetIterFirst (out iter))
return pad.CreateBuilder (Gtk.TreeIter.Zero);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs
index e77d0333d8..ac64371189 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs
@@ -248,6 +248,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
void OnSystemFileAdded (object sender, FileEventArgs args)
{
+ if (Context.Tree.IsDestroyed)
+ return;
foreach (FileEventInfo e in args) {
Project project = GetProjectForFile (e.FileName);
if (project == null) return;
@@ -263,6 +265,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
void OnSystemFileDeleted (object sender, FileEventArgs args)
{
+ if (Context.Tree.IsDestroyed)
+ return;
foreach (FileEventInfo e in args) {
try {
Project project = GetProjectForFile (e.FileName);
@@ -298,6 +302,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
void OnSystemFileRenamed (object sender, FileCopyEventArgs args)
{
+ if (Context.Tree.IsDestroyed)
+ return;
foreach (FileEventInfo e in args) {
Project project = GetProjectForFile (e.SourceFile);
if (project == null) return;