diff options
Diffstat (limited to 'Xwt.XamMac/Xwt.Mac/NSApplicationInitializer.cs')
-rw-r--r-- | Xwt.XamMac/Xwt.Mac/NSApplicationInitializer.cs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Xwt.XamMac/Xwt.Mac/NSApplicationInitializer.cs b/Xwt.XamMac/Xwt.Mac/NSApplicationInitializer.cs index b051f47a..580573c3 100644 --- a/Xwt.XamMac/Xwt.Mac/NSApplicationInitializer.cs +++ b/Xwt.XamMac/Xwt.Mac/NSApplicationInitializer.cs @@ -24,23 +24,22 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +using System; + using AppKit; namespace Xwt.Mac { static class NSApplicationInitializer { + [ThreadStatic] + static bool initialized; + public static void Initialize () { - var ds = System.Threading.Thread.GetNamedDataSlot ("NSApplication.Initialized"); - if (System.Threading.Thread.GetData (ds) == null) { - System.Threading.Thread.SetData (ds, true); - - // IgnoreMissingAssembliesDuringRegistration is only avalilable in Xamarin.Mac 3.4+ - // Use reflection to not break builds with older Xamarin.Mac - var ignoreMissingAssemblies = typeof (NSApplication).GetField ("IgnoreMissingAssembliesDuringRegistration", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); - ignoreMissingAssemblies?.SetValue (null, true); + if (!initialized) { + initialized = true; + NSApplication.IgnoreMissingAssembliesDuringRegistration = true; NSApplication.Init (); } } |