Browse Source

Merge branch 'master' into listbox

pull/10247/head
Max Katz 4 years ago
committed by GitHub
parent
commit
f6c255a1b0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/Avalonia.Controls.DataGrid/DataGrid.cs
  2. 2
      src/Avalonia.Controls.DataGrid/Utils/TreeHelper.cs
  3. 2
      src/Avalonia.Controls/AutoCompleteBox/AutoCompleteBox.cs
  4. 4
      src/Avalonia.Controls/Button.cs
  5. 4
      src/Avalonia.Controls/Control.cs
  6. 18
      src/Avalonia.Controls/Documents/InlineUIContainer.cs
  7. 2
      src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
  8. 2
      src/Avalonia.Controls/Primitives/OverlayPopupHost.cs
  9. 2
      src/Avalonia.Controls/Primitives/Popup.cs
  10. 4
      src/Avalonia.Controls/Primitives/PopupRoot.cs
  11. 2
      src/Avalonia.Controls/ProgressBar.cs
  12. 4
      src/Avalonia.Controls/TextBlock.cs

2
src/Avalonia.Controls.DataGrid/DataGrid.cs

@ -3979,7 +3979,7 @@ namespace Avalonia.Controls
{ {
if (focusedObject is Control element) if (focusedObject is Control element)
{ {
parent = element.Parent; parent = element.VisualParent;
if (parent != null) if (parent != null)
{ {
dataGridWillReceiveRoutedEvent = false; dataGridWillReceiveRoutedEvent = false;

2
src/Avalonia.Controls.DataGrid/Utils/TreeHelper.cs

@ -36,7 +36,7 @@ namespace Avalonia.Controls.Utils
{ {
if (child is Control childElement) if (child is Control childElement)
{ {
parent = childElement.Parent; parent = childElement.VisualParent;
} }
} }
child = parent; child = parent;

2
src/Avalonia.Controls/AutoCompleteBox/AutoCompleteBox.cs

@ -792,7 +792,7 @@ namespace Avalonia.Controls
Control? element = focused as Control; Control? element = focused as Control;
if (element != null) if (element != null)
{ {
parent = element.Parent; parent = element.VisualParent;
} }
} }
focused = parent; focused = parent;

4
src/Avalonia.Controls/Button.cs

@ -394,10 +394,10 @@ namespace Avalonia.Controls
if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed) if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed)
{ {
IsPressed = true; IsPressed = true;
e.Handled = true;
if (ClickMode == ClickMode.Press) if (ClickMode == ClickMode.Press)
{ {
e.Handled = true;
OnClick(); OnClick();
} }
} }
@ -411,11 +411,11 @@ namespace Avalonia.Controls
if (IsPressed && e.InitialPressMouseButton == MouseButton.Left) if (IsPressed && e.InitialPressMouseButton == MouseButton.Left)
{ {
IsPressed = false; IsPressed = false;
e.Handled = true;
if (ClickMode == ClickMode.Release && if (ClickMode == ClickMode.Release &&
this.GetVisualsAt(e.GetPosition(this)).Any(c => this == c || this.IsVisualAncestorOf(c))) this.GetVisualsAt(e.GetPosition(this)).Any(c => this == c || this.IsVisualAncestorOf(c)))
{ {
e.Handled = true;
OnClick(); OnClick();
} }
} }

4
src/Avalonia.Controls/Control.cs

@ -2,14 +2,12 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using Avalonia.Automation.Peers; using Avalonia.Automation.Peers;
using Avalonia.Controls.Documents;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Input.Platform; using Avalonia.Input.Platform;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.LogicalTree; using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.Rendering; using Avalonia.Rendering;
using Avalonia.Styling; using Avalonia.Styling;
using Avalonia.Threading; using Avalonia.Threading;
@ -211,8 +209,6 @@ namespace Avalonia.Controls
remove => RemoveHandler(SizeChangedEvent, value); remove => RemoveHandler(SizeChangedEvent, value);
} }
public new Control? Parent => (Control?)base.Parent;
/// <inheritdoc/> /// <inheritdoc/>
bool IDataTemplateHost.IsDataTemplatesInitialized => _dataTemplates != null; bool IDataTemplateHost.IsDataTemplatesInitialized => _dataTemplates != null;

18
src/Avalonia.Controls/Documents/InlineUIContainer.cs

@ -64,5 +64,23 @@ namespace Avalonia.Controls.Documents
internal override void AppendText(StringBuilder stringBuilder) internal override void AppendText(StringBuilder stringBuilder)
{ {
} }
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
base.OnPropertyChanged(change);
if (change.Property == ChildProperty)
{
if(change.OldValue is Control oldChild)
{
LogicalChildren.Remove(oldChild);
}
if(change.NewValue is Control newChild)
{
LogicalChildren.Add(newChild);
}
}
}
} }
} }

2
src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs

@ -553,7 +553,7 @@ namespace Avalonia.Controls.Platform
} }
} }
protected static IMenuItem? GetMenuItem(Control? item) protected static IMenuItem? GetMenuItem(StyledElement? item)
{ {
while (true) while (true)
{ {

2
src/Avalonia.Controls/Primitives/OverlayPopupHost.cs

@ -48,7 +48,7 @@ namespace Avalonia.Controls.Primitives
set { /* Not currently supported in overlay popups */ } set { /* Not currently supported in overlay popups */ }
} }
protected internal override Interactive? InteractiveParent => Parent; protected internal override Interactive? InteractiveParent => (Interactive?)VisualParent;
public void Dispose() => Hide(); public void Dispose() => Hide();

2
src/Avalonia.Controls/Primitives/Popup.cs

@ -723,7 +723,7 @@ namespace Avalonia.Controls.Primitives
while (e is object && (!e.Focusable || !e.IsEffectivelyEnabled || !e.IsVisible)) while (e is object && (!e.Focusable || !e.IsEffectivelyEnabled || !e.IsVisible))
{ {
e = e.Parent; e = e.VisualParent as Control;
} }
if (e is object) if (e is object)

4
src/Avalonia.Controls/Primitives/PopupRoot.cs

@ -72,12 +72,12 @@ namespace Avalonia.Controls.Primitives
/// <remarks> /// <remarks>
/// Popup events are passed to their parent window. This facilitates this. /// Popup events are passed to their parent window. This facilitates this.
/// </remarks> /// </remarks>
protected internal override Interactive? InteractiveParent => Parent; protected internal override Interactive? InteractiveParent => (Interactive?)Parent;
/// <summary> /// <summary>
/// Gets the control that is hosting the popup root. /// Gets the control that is hosting the popup root.
/// </summary> /// </summary>
Visual? IHostedVisualTreeRoot.Host => Parent; Visual? IHostedVisualTreeRoot.Host => VisualParent;
/// <summary> /// <summary>
/// Gets the styling parent of the popup root. /// Gets the styling parent of the popup root.

2
src/Avalonia.Controls/ProgressBar.cs

@ -231,7 +231,7 @@ namespace Avalonia.Controls
private void UpdateIndicator() private void UpdateIndicator()
{ {
// Gets the size of the parent indicator container // Gets the size of the parent indicator container
var barSize = _indicator?.Parent?.Bounds.Size ?? Bounds.Size; var barSize = _indicator?.VisualParent?.Bounds.Size ?? Bounds.Size;
if (_indicator != null) if (_indicator != null)
{ {

4
src/Avalonia.Controls/TextBlock.cs

@ -673,8 +673,6 @@ namespace Avalonia.Controls
controlRun.Control is Control control) controlRun.Control is Control control)
{ {
VisualChildren.Remove(control); VisualChildren.Remove(control);
LogicalChildren.Remove(control);
} }
} }
} }
@ -693,8 +691,6 @@ namespace Avalonia.Controls
{ {
VisualChildren.Add(control); VisualChildren.Add(control);
LogicalChildren.Add(control);
control.Measure(Size.Infinity); control.Measure(Size.Infinity);
} }
} }

Loading…
Cancel
Save