From 99923b94d392c8c6fdfbc68c4754cd25e2c04977 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Mon, 1 Oct 2018 20:41:43 +0100 Subject: [PATCH] implement window position changed. --- src/Avalonia.Native.OSX/window.mm | 6 ++++++ src/Avalonia.Native/WindowImplBase.cs | 5 +++++ src/headers/avalonia-native.h | 1 + 3 files changed, 12 insertions(+) diff --git a/src/Avalonia.Native.OSX/window.mm b/src/Avalonia.Native.OSX/window.mm index 57dbec10e9..4fba1aee91 100644 --- a/src/Avalonia.Native.OSX/window.mm +++ b/src/Avalonia.Native.OSX/window.mm @@ -535,6 +535,12 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent [super resignKeyWindow]; } +- (void)windowDidMove:(NSNotification *)notification +{ + AvnPoint position; + _parent->GetPosition(&position); + _parent->BaseEvents->PositionChanged(position); +} @end class PopupImpl : public WindowBaseImpl, public IAvnPopup diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 7a4f6d60d9..3b5b46c698 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -133,6 +133,11 @@ namespace Avalonia.Native _parent.Resized?.Invoke(s); } + void IAvnWindowBaseEvents.PositionChanged(AvnPoint position) + { + _parent.PositionChanged?.Invoke(position.ToAvaloniaPoint()); + } + void IAvnWindowBaseEvents.RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { _parent.RawMouseEvent(type, timeStamp, modifiers, point, delta); diff --git a/src/headers/avalonia-native.h b/src/headers/avalonia-native.h index 6743b0dc3e..3780d8c422 100644 --- a/src/headers/avalonia-native.h +++ b/src/headers/avalonia-native.h @@ -132,6 +132,7 @@ AVNCOM(IAvnWindowBaseEvents, 05) : IUnknown virtual void Activated() = 0; virtual void Deactivated() = 0; virtual void Resized(const AvnSize& size) = 0; + virtual void PositionChanged (AvnPoint position) = 0; virtual void RawMouseEvent (AvnRawMouseEventType type, unsigned int timeStamp, AvnInputModifiers modifiers,