From 563c29b16523ff11f2dea96b28f2d7d8ae49faa6 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 27 Oct 2021 11:30:16 +0100 Subject: [PATCH] [OSX] fix non-client click detection causing crash on popups. --- native/Avalonia.Native/src/OSX/window.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/window.mm b/native/Avalonia.Native/src/OSX/window.mm index 26c065fe11..094c1f7c93 100644 --- a/native/Avalonia.Native/src/OSX/window.mm +++ b/native/Avalonia.Native/src/OSX/window.mm @@ -2389,7 +2389,10 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent - (void)sendEvent:(NSEvent *)event { - if(_parent != nullptr) + [super sendEvent:event]; + + /// This is to detect non-client clicks. This can only be done on Windows... not popups, hence the dynamic_cast. + if(_parent != nullptr && dynamic_cast(_parent.getRaw()) != nullptr) { switch(event.type) { @@ -2419,8 +2422,6 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent break; } } - - [super sendEvent:event]; } @end