Browse Source
Merge pull request #6926 from AvaloniaUI/fixes/6827-osx-non-client-click
macOS: Only raise non-client click when outside view client area.
pull/6950/head
Dan Walmsley
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
11 additions and
4 deletions
-
native/Avalonia.Native/src/OSX/window.mm
|
|
|
@ -2398,11 +2398,18 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
{ |
|
|
|
case NSEventTypeLeftMouseDown: |
|
|
|
{ |
|
|
|
auto avnPoint = [AvnView toAvnPoint:[event locationInWindow]]; |
|
|
|
auto point = [self translateLocalPoint:avnPoint]; |
|
|
|
AvnVector delta; |
|
|
|
AvnView* view = _parent->View; |
|
|
|
NSPoint windowPoint = [event locationInWindow]; |
|
|
|
NSPoint viewPoint = [view convertPoint:windowPoint fromView:nil]; |
|
|
|
|
|
|
|
_parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, [event timestamp] * 1000, AvnInputModifiersNone, point, delta); |
|
|
|
if (!NSPointInRect(viewPoint, view.bounds)) |
|
|
|
{ |
|
|
|
auto avnPoint = [AvnView toAvnPoint:windowPoint]; |
|
|
|
auto point = [self translateLocalPoint:avnPoint]; |
|
|
|
AvnVector delta; |
|
|
|
|
|
|
|
_parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, [event timestamp] * 1000, AvnInputModifiersNone, point, delta); |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
|