From 1734793325b71f3a40cfd4a7040b46b2a5ac78a4 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 16 Oct 2018 20:50:52 +0100 Subject: [PATCH] fix exception on popup dispose. --- src/Avalonia.Native/PopupImpl.cs | 10 +--------- src/Avalonia.Native/WindowImplBase.cs | 13 ++++--------- 2 files changed, 5 insertions(+), 18 deletions(-) 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(); }