From 06f7715fa54babb242b82e48b00be6c6c9ac7234 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 3 Oct 2024 12:15:03 +0400 Subject: [PATCH] Don't apply our weird window positioning hacks for clicks on traffic lights (#17181) This hack fixes the minimize problem with macOS 15.0 --- native/Avalonia.Native/src/OSX/AvnWindow.mm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index ef50cdab841..a4464df9a95 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -439,6 +439,16 @@ - (AvnPoint) translateLocalPoint:(AvnPoint)pt return pt; } +- (NSView*) findRootView:(NSView*)view +{ + while (true) { + auto parent = [view superview]; + if(parent == nil) + return view; + view = parent; + } +} + - (void)sendEvent:(NSEvent *_Nonnull)event { [super sendEvent:event]; @@ -453,7 +463,15 @@ - (void)sendEvent:(NSEvent *_Nonnull)event AvnView* view = _parent->View; NSPoint windowPoint = [event locationInWindow]; NSPoint viewPoint = [view convertPoint:windowPoint fromView:nil]; - + + auto targetView = [[self findRootView:view] hitTest: windowPoint]; + if(targetView) + { + auto targetViewClass = [targetView className]; + if([targetViewClass containsString: @"_NSThemeWidget"]) + return; + } + if (!NSPointInRect(viewPoint, view.bounds)) { auto avnPoint = [AvnView toAvnPoint:windowPoint];