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

github.com/mono/mono-addins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Medrano <josmed@microsoft.com>2019-09-23 19:10:20 +0300
committerJose Medrano <josmed@microsoft.com>2019-09-23 19:10:20 +0300
commitcb5412a783c9d869a91026acfdf57622039cb8bf (patch)
tree8534f4a7018c65b98190cae280eaf01ada1ce3df
parent5f4c1e45f2acfe2427497104913e151dc125f94a (diff)
Adds weak reference to parent window
-rw-r--r--Mono.Addins.Gui/Mono.Addins.Gui/ProgressDialog.cs7
1 files changed, 4 insertions, 3 deletions
diff --git a/Mono.Addins.Gui/Mono.Addins.Gui/ProgressDialog.cs b/Mono.Addins.Gui/Mono.Addins.Gui/ProgressDialog.cs
index 07bb5d8..d9e04a0 100644
--- a/Mono.Addins.Gui/Mono.Addins.Gui/ProgressDialog.cs
+++ b/Mono.Addins.Gui/Mono.Addins.Gui/ProgressDialog.cs
@@ -34,12 +34,12 @@ namespace Mono.Addins.Gui
bool cancelled;
bool hadError;
- readonly Gtk.Window parent;
+ readonly WeakReference<Gtk.Window> parent;
public ProgressDialog (Gtk.Window parent)
{
this.Build();
- this.parent = parent;
+ this.parent = new WeakReference<Gtk.Window> (parent);
Services.PlaceDialog (this, parent);
}
@@ -94,7 +94,8 @@ namespace Mono.Addins.Gui
if (exception != null)
Log (exception.ToString ());
Gtk.Application.Invoke ((o, args) => {
- Services.ShowError (exception, message, parent, true);
+ if (parent.TryGetTarget (out var parentWindow))
+ Services.ShowError (exception, message, parentWindow, true);
});
hadError = true;
}