|
|
|
@ -204,13 +204,15 @@ namespace Avalonia.Controls |
|
|
|
private static void IsOpenChanged(AvaloniaPropertyChangedEventArgs e) |
|
|
|
{ |
|
|
|
var control = (Control)e.Sender; |
|
|
|
var newValue = (bool)e.NewValue; |
|
|
|
ToolTip toolTip; |
|
|
|
|
|
|
|
if ((bool)e.NewValue) |
|
|
|
if (newValue) |
|
|
|
{ |
|
|
|
var tip = GetTip(control); |
|
|
|
if (tip == null) return; |
|
|
|
|
|
|
|
var toolTip = control.GetValue(ToolTipProperty); |
|
|
|
toolTip = control.GetValue(ToolTipProperty); |
|
|
|
if (toolTip == null || (tip != toolTip && tip != toolTip.Content)) |
|
|
|
{ |
|
|
|
toolTip?.Close(); |
|
|
|
@ -223,9 +225,11 @@ namespace Avalonia.Controls |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var toolTip = control.GetValue(ToolTipProperty); |
|
|
|
toolTip = control.GetValue(ToolTipProperty); |
|
|
|
toolTip?.Close(); |
|
|
|
} |
|
|
|
|
|
|
|
toolTip?.UpdatePseudoClasses(newValue); |
|
|
|
} |
|
|
|
|
|
|
|
private void Open(Control control) |
|
|
|
@ -261,5 +265,10 @@ namespace Avalonia.Controls |
|
|
|
pr.PlatformImpl.SetWindowManagerAddShadowHint(hint); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void UpdatePseudoClasses(bool newValue) |
|
|
|
{ |
|
|
|
PseudoClasses.Set(":open", newValue); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|