From 1c111aef6c76cd4d945934524ca71ca033bfd9b3 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 28 Jul 2019 23:25:18 +0300 Subject: [PATCH] watwut --- src/Avalonia.Controls/Primitives/IPopupHost.cs | 2 +- src/Avalonia.Controls/Primitives/OverlayLayer.cs | 1 + src/Avalonia.Controls/Primitives/PopupRoot.cs | 2 ++ src/Avalonia.Controls/ToolTip.cs | 4 ++-- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Controls/Primitives/IPopupHost.cs b/src/Avalonia.Controls/Primitives/IPopupHost.cs index ca0f723893..df68eab6a4 100644 --- a/src/Avalonia.Controls/Primitives/IPopupHost.cs +++ b/src/Avalonia.Controls/Primitives/IPopupHost.cs @@ -6,7 +6,7 @@ namespace Avalonia.Controls.Primitives { public interface IPopupHost : IDisposable { - object Content { get; set; } + void SetContent(IControl control); IVisual VisualRoot { get; } void ConfigurePosition(IVisual target, PlacementMode placement, Point offset, diff --git a/src/Avalonia.Controls/Primitives/OverlayLayer.cs b/src/Avalonia.Controls/Primitives/OverlayLayer.cs index 32dcf9f797..2294c70e9b 100644 --- a/src/Avalonia.Controls/Primitives/OverlayLayer.cs +++ b/src/Avalonia.Controls/Primitives/OverlayLayer.cs @@ -117,6 +117,7 @@ namespace Avalonia.Controls.Primitives public void Add(Control v) { VisualChildren.Add(v); + InvalidateMeasure(); InvalidateArrange(); } diff --git a/src/Avalonia.Controls/Primitives/PopupRoot.cs b/src/Avalonia.Controls/Primitives/PopupRoot.cs index 36595f69c4..0955800263 100644 --- a/src/Avalonia.Controls/Primitives/PopupRoot.cs +++ b/src/Avalonia.Controls/Primitives/PopupRoot.cs @@ -142,6 +142,8 @@ namespace Avalonia.Controls.Primitives UpdatePosition(); } + public void SetContent(IControl control) => Content = control; + IVisual IPopupHost.VisualRoot => this; public IDisposable BindConstraints(AvaloniaObject popup, StyledProperty widthProperty, StyledProperty minWidthProperty, diff --git a/src/Avalonia.Controls/ToolTip.cs b/src/Avalonia.Controls/ToolTip.cs index 1bfcb47bb9..682f7cdd70 100644 --- a/src/Avalonia.Controls/ToolTip.cs +++ b/src/Avalonia.Controls/ToolTip.cs @@ -236,7 +236,7 @@ namespace Avalonia.Controls Close(); _popup = PopupHost.CreatePopupHost(control, null); - _popup.Content = this; + _popup.SetContent(this); ((ISetLogicalParent)_popup).SetParent(control); _popup.ConfigurePosition(control, GetPlacement(control), @@ -248,7 +248,7 @@ namespace Avalonia.Controls { if (_popup != null) { - _popup.Content = null; + _popup.SetContent(null); _popup.Hide(); _popup = null; }