diff --git a/src/Avalonia.Native/PopupImpl.cs b/src/Avalonia.Native/PopupImpl.cs index c9eab95626..6005f01a60 100644 --- a/src/Avalonia.Native/PopupImpl.cs +++ b/src/Avalonia.Native/PopupImpl.cs @@ -9,22 +9,14 @@ namespace Avalonia.Native { public class PopupImpl : WindowBaseImpl, IPopupImpl { - IAvnPopup _native; - public PopupImpl(IAvaloniaNativeFactory factory) { using (var e = new PopupEvents(this)) { - Init(_native = factory.CreatePopup(e), factory.CreateScreens()); + Init(factory.CreatePopup(e), factory.CreateScreens()); } } - public override void Dispose() - { - _native.Dispose(); - base.Dispose(); - } - class PopupEvents : WindowBaseEvents, IAvnWindowEvents { readonly PopupImpl _parent; diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 74891b219d..030fedf9b6 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -20,7 +20,6 @@ namespace Avalonia.Native { IInputRoot _inputRoot; IAvnWindowBase _native; - bool _isClosed; private object _syncRoot = new object(); private bool _deferredRendering = false; private bool _gpu = false; @@ -254,15 +253,11 @@ namespace Avalonia.Native public virtual void Dispose() { - if (!_isClosed) - { - _isClosed = true; - _native?.Close(); - _native?.Dispose(); - _native = null; + _native?.Close(); + _native?.Dispose(); + _native = null; - (Screen as ScreenImpl)?.Dispose(); - } + (Screen as ScreenImpl)?.Dispose(); }