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:
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Documents/DocumentView.cs')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Documents/DocumentView.cs16
1 files changed, 16 insertions, 0 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Documents/DocumentView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Documents/DocumentView.cs
index b78e322bc5..db569a756c 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Documents/DocumentView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Documents/DocumentView.cs
@@ -50,6 +50,7 @@ namespace MonoDevelop.Ide.Gui.Documents
bool contentVisible;
DocumentView parent;
bool disposed;
+ bool closed;
bool hasFocus;
bool shown;
@@ -292,12 +293,21 @@ namespace MonoDevelop.Ide.Gui.Documents
public void Dispose ()
{
+ Close ();
if (!disposed) {
disposed = true;
OnDispose ();
}
}
+ internal void Close ()
+ {
+ if (!closed) {
+ closed = true;
+ OnClosed ();
+ }
+ }
+
internal virtual void SetActiveChild (DocumentView child)
{
if (AttachedViews.Contains (child)) {
@@ -458,6 +468,12 @@ namespace MonoDevelop.Ide.Gui.Documents
SourceController?.Dispose ();
}
+ internal virtual void OnClosed ()
+ {
+ // If this view was created by a controller, dispose the controller here too.
+ SourceController?.Close ();
+ }
+
internal virtual IEnumerable<DocumentController> GetActiveControllerHierarchy ()
{
if (SourceController != null)