diff options
author | Jose Medrano <josmed@microsoft.com> | 2019-09-23 19:10:20 +0300 |
---|---|---|
committer | Jose Medrano <josmed@microsoft.com> | 2019-09-23 19:10:20 +0300 |
commit | cb5412a783c9d869a91026acfdf57622039cb8bf (patch) | |
tree | 8534f4a7018c65b98190cae280eaf01ada1ce3df | |
parent | 5f4c1e45f2acfe2427497104913e151dc125f94a (diff) |
Adds weak reference to parent window
-rw-r--r-- | Mono.Addins.Gui/Mono.Addins.Gui/ProgressDialog.cs | 7 |
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; } |