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:
authorVsevolod Kukol <sevoku@microsoft.com>2019-04-25 18:23:25 +0300
committerGitHub <noreply@github.com>2019-04-25 18:23:25 +0300
commit475b11ccbe0a7b37b43368ae71d321582e1b7d5d (patch)
tree5ca4b19199dca458922361b6eeeca563541ddb31
parent173ff1c7bfff6ebaefd0cd89d9c51b907dbe8cf6 (diff)
parent88f9406685b4d792a8e31d89645cf4e635e2a138 (diff)
Merge pull request #624 from xamarin/release-8.0-fix849568-startup-error-reporting-crash
[release-8.0] [Mac] Fix Alert Dialog crash on startup
-rw-r--r--main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs6
-rw-r--r--main/src/addins/MacPlatform/MacPlatform.cs23
2 files changed, 26 insertions, 3 deletions
diff --git a/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs b/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs
index fee1dc7dce..8112ef22f4 100644
--- a/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs
+++ b/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs
@@ -1,4 +1,4 @@
-//
+//
// MacAlertFileDialogHandler.cs
//
// Author:
@@ -182,7 +182,9 @@ namespace MonoDevelop.MacIntegration
int response = -1000;
- var parent = data.TransientFor ?? IdeApp.Workbench.RootWindow;
+ var parent = data.TransientFor;
+ if (parent == null && IdeApp.Workbench?.RootWindow?.Visible == true)
+ parent = IdeApp.Workbench?.RootWindow;
NSWindow nativeParent;
try {
nativeParent = parent;
diff --git a/main/src/addins/MacPlatform/MacPlatform.cs b/main/src/addins/MacPlatform/MacPlatform.cs
index 97a8063b12..10672960c5 100644
--- a/main/src/addins/MacPlatform/MacPlatform.cs
+++ b/main/src/addins/MacPlatform/MacPlatform.cs
@@ -993,7 +993,28 @@ namespace MonoDevelop.MacIntegration
public override Window GetParentForModalWindow ()
{
- return NSApplication.SharedApplication.ModalWindow ?? NSApplication.SharedApplication.KeyWindow ?? NSApplication.SharedApplication.MainWindow;
+ try {
+ var window = NSApplication.SharedApplication.ModalWindow;
+ if (window != null)
+ return window;
+ } catch (Exception e) {
+ LoggingService.LogInternalError ("Getting SharedApplication.ModalWindow failed", e);
+ }
+ try {
+ var window = NSApplication.SharedApplication.KeyWindow;
+ if (window != null)
+ return window;
+ } catch (Exception e) {
+ LoggingService.LogInternalError ("Getting SharedApplication.KeyWindow failed", e);
+ }
+ try {
+ var window = NSApplication.SharedApplication.MainWindow;
+ if (window != null)
+ return window;
+ } catch (Exception e) {
+ LoggingService.LogInternalError ("Getting SharedApplication.MainWindow failed", e);
+ }
+ return null;
}
bool HasAnyDockWindowFocused ()