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:
authorMike Krüger <mikkrg@microsoft.com>2019-11-11 12:16:12 +0300
committermonojenkins <jo.shields+jenkins@xamarin.com>2019-12-05 16:38:26 +0300
commita341194db6bf368d670801d8598fd98d60511256 (patch)
treef151783e2407c19f13bcdb615b427b3bbdda316b
parent4eb3aee27fcaffe26b24ac4eeb2ffda9e1b32b50 (diff)
[Core] Introduced TryGetNativeWidget method to Control.
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Window.cs8
2 files changed, 12 insertions, 8 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs
index 842593a939..3a9f8409ed 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs
@@ -55,7 +55,7 @@ namespace MonoDevelop.Components
{
throw new NotSupportedException ();
}
-
+
public T GetNativeWidget<T> () where T : class
{
if (nativeWidget == null) {
@@ -92,6 +92,16 @@ namespace MonoDevelop.Components
throw new NotSupportedException ($"Cannot get native widget {typeof (T)}");
}
+ public bool TryGetNativeWidget<T> (out T widget) where T : class
+ {
+ if (nativeWidget is T) {
+ widget = GetNativeWidget<T> ();
+ return true;
+ }
+ widget = null;
+ return false;
+ }
+
void OnGtkDestroyed (object sender, EventArgs args)
{
GC.SuppressFinalize (this);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Window.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Window.cs
index 86d2c60234..8446f68609 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Window.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Window.cs
@@ -218,13 +218,7 @@ namespace MonoDevelop.Components
{
try {
#if MAC
- NSWindow nsWindow = null;
- try {
- nsWindow = parent.GetNativeWidget<NSWindow> ();
- } catch {
- ; // nothing
- }
- if (nsWindow != null) {
+ if (parent.TryGetNativeWidget<NSWindow> (out var nsWindow)) {
var myNSWindow = MonoDevelop.Components.Mac.GtkMacInterop.GetNSWindow (window);
myNSWindow.ParentWindow = nsWindow;
} else {