|
|
|
@ -28,14 +28,12 @@ namespace Avalonia.Controls |
|
|
|
{ |
|
|
|
control.PointerEnter -= ControlPointerEnter; |
|
|
|
control.PointerLeave -= ControlPointerLeave; |
|
|
|
control.PropertyChanged -= Control_PropertyChanged; |
|
|
|
} |
|
|
|
|
|
|
|
if (e.NewValue != null) |
|
|
|
{ |
|
|
|
control.PointerEnter += ControlPointerEnter; |
|
|
|
control.PointerLeave += ControlPointerLeave; |
|
|
|
control.PropertyChanged += Control_PropertyChanged; |
|
|
|
} |
|
|
|
|
|
|
|
if (ToolTip.GetIsOpen(control) && e.NewValue != e.OldValue && !(e.NewValue is ToolTip)) |
|
|
|
@ -53,10 +51,12 @@ namespace Avalonia.Controls |
|
|
|
if (e.OldValue is false && e.NewValue is true) |
|
|
|
{ |
|
|
|
control.DetachedFromVisualTree += ControlDetaching; |
|
|
|
control.EffectiveViewportChanged += ControlEffectiveViewportChanged; |
|
|
|
} |
|
|
|
else if(e.OldValue is true && e.NewValue is false) |
|
|
|
{ |
|
|
|
control.DetachedFromVisualTree -= ControlDetaching; |
|
|
|
control.EffectiveViewportChanged -= ControlEffectiveViewportChanged; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -64,6 +64,7 @@ namespace Avalonia.Controls |
|
|
|
{ |
|
|
|
var control = (Control)sender; |
|
|
|
control.DetachedFromVisualTree -= ControlDetaching; |
|
|
|
control.EffectiveViewportChanged -= ControlEffectiveViewportChanged; |
|
|
|
Close(control); |
|
|
|
} |
|
|
|
|
|
|
|
@ -99,15 +100,11 @@ namespace Avalonia.Controls |
|
|
|
Close(control); |
|
|
|
} |
|
|
|
|
|
|
|
private void Control_PropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) |
|
|
|
private void ControlEffectiveViewportChanged(object sender, Layout.EffectiveViewportChangedEventArgs e) |
|
|
|
{ |
|
|
|
var control = (Control)sender; |
|
|
|
|
|
|
|
if (e.Property == Visual.BoundsProperty) |
|
|
|
{ |
|
|
|
var toolTip = control.GetValue(ToolTip.ToolTipProperty); |
|
|
|
toolTip?.RecalculatePosition(control); |
|
|
|
} |
|
|
|
var toolTip = control.GetValue(ToolTip.ToolTipProperty); |
|
|
|
toolTip?.RecalculatePosition(control); |
|
|
|
} |
|
|
|
|
|
|
|
private void StartShowTimer(int showDelay, Control control) |
|
|
|
|