Browse Source
Merge branch 'master' into fix-separator
pull/9655/head
Max Katz
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with
18 additions and
14 deletions
-
.editorconfig
-
src/Avalonia.Base/Media/DashStyle.cs
-
src/Avalonia.Base/Media/IDashStyle.cs
-
src/Avalonia.Base/Media/Immutable/ImmutableDashStyle.cs
-
src/Avalonia.Controls/Presenters/TextPresenter.cs
-
src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml
-
src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml
-
src/Skia/Avalonia.Skia/DrawingContextImpl.cs
-
src/Windows/Avalonia.Win32/OpenGl/Angle/AngleWin32PlatformGraphics.cs
|
|
|
@ -140,6 +140,8 @@ dotnet_analyzer_diagnostic.category-Performance.severity = none #error - Uncomme |
|
|
|
# CS1591: Missing XML comment for publicly visible type or member |
|
|
|
dotnet_diagnostic.CS1591.severity = suggestion |
|
|
|
|
|
|
|
# CS0162: Remove unreachable code |
|
|
|
dotnet_diagnostic.CS0162.severity = error |
|
|
|
# CA1304: Specify CultureInfo |
|
|
|
dotnet_diagnostic.CA1304.severity = warning |
|
|
|
# CA1802: Use literals where appropriate |
|
|
|
|
|
|
|
@ -17,8 +17,8 @@ namespace Avalonia.Media |
|
|
|
/// <summary>
|
|
|
|
/// Defines the <see cref="Dashes"/> property.
|
|
|
|
/// </summary>
|
|
|
|
public static readonly StyledProperty<AvaloniaList<double>> DashesProperty = |
|
|
|
AvaloniaProperty.Register<DashStyle, AvaloniaList<double>>(nameof(Dashes)); |
|
|
|
public static readonly StyledProperty<AvaloniaList<double>?> DashesProperty = |
|
|
|
AvaloniaProperty.Register<DashStyle, AvaloniaList<double>?>(nameof(Dashes)); |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Defines the <see cref="Offset"/> property.
|
|
|
|
@ -83,7 +83,7 @@ namespace Avalonia.Media |
|
|
|
/// <summary>
|
|
|
|
/// Gets or sets the length of alternating dashes and gaps.
|
|
|
|
/// </summary>
|
|
|
|
public AvaloniaList<double> Dashes |
|
|
|
public AvaloniaList<double>? Dashes |
|
|
|
{ |
|
|
|
get => GetValue(DashesProperty); |
|
|
|
set => SetValue(DashesProperty, value); |
|
|
|
@ -98,7 +98,7 @@ namespace Avalonia.Media |
|
|
|
set => SetValue(OffsetProperty, value); |
|
|
|
} |
|
|
|
|
|
|
|
IReadOnlyList<double> IDashStyle.Dashes => Dashes; |
|
|
|
IReadOnlyList<double>? IDashStyle.Dashes => Dashes; |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Raised when the dash style changes.
|
|
|
|
|
|
|
|
@ -12,7 +12,7 @@ namespace Avalonia.Media |
|
|
|
/// <summary>
|
|
|
|
/// Gets or sets the length of alternating dashes and gaps.
|
|
|
|
/// </summary>
|
|
|
|
IReadOnlyList<double> Dashes { get; } |
|
|
|
IReadOnlyList<double>? Dashes { get; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Gets or sets how far in the dash sequence the stroke will start.
|
|
|
|
|
|
|
|
@ -17,7 +17,7 @@ namespace Avalonia.Media.Immutable |
|
|
|
/// </summary>
|
|
|
|
/// <param name="dashes">The dashes collection.</param>
|
|
|
|
/// <param name="offset">The dash sequence offset.</param>
|
|
|
|
public ImmutableDashStyle(IEnumerable<double> dashes, double offset) |
|
|
|
public ImmutableDashStyle(IEnumerable<double>? dashes, double offset) |
|
|
|
{ |
|
|
|
_dashes = dashes?.ToArray() ?? Array.Empty<double>(); |
|
|
|
Offset = offset; |
|
|
|
@ -69,7 +69,7 @@ namespace Avalonia.Media.Immutable |
|
|
|
return hashCode; |
|
|
|
} |
|
|
|
|
|
|
|
private static bool SequenceEqual(IReadOnlyList<double> left, IReadOnlyList<double> right) |
|
|
|
private static bool SequenceEqual(IReadOnlyList<double> left, IReadOnlyList<double>? right) |
|
|
|
{ |
|
|
|
if (ReferenceEquals(left, right)) |
|
|
|
{ |
|
|
|
|
|
|
|
@ -109,7 +109,7 @@ namespace Avalonia.Controls.Presenters |
|
|
|
|
|
|
|
static TextPresenter() |
|
|
|
{ |
|
|
|
AffectsRender<TextPresenter>(CaretBrushProperty, SelectionBrushProperty); |
|
|
|
AffectsRender<TextPresenter>(CaretBrushProperty, SelectionBrushProperty, TextElement.ForegroundProperty); |
|
|
|
} |
|
|
|
|
|
|
|
public TextPresenter() |
|
|
|
|
|
|
|
@ -36,6 +36,7 @@ |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumHighBrush" Color="{StaticResource SystemAltMediumHighColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumBrush" Color="{StaticResource SystemAltMediumColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumLowBrush" Color="{StaticResource SystemAltMediumLowColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltLowBrush" Color="{StaticResource SystemAltLowColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
|
|
|
|
|
|
|
@ -36,6 +36,7 @@ |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumHighBrush" Color="{StaticResource SystemAltMediumHighColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumBrush" Color="{StaticResource SystemAltMediumColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumLowBrush" Color="{StaticResource SystemAltMediumLowColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundAltLowBrush" Color="{StaticResource SystemAltLowColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
|
|
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
|
|
|
|
|
|
|
@ -1137,11 +1137,14 @@ namespace Avalonia.Skia |
|
|
|
if (pen.DashStyle?.Dashes != null && pen.DashStyle.Dashes.Count > 0) |
|
|
|
{ |
|
|
|
var srcDashes = pen.DashStyle.Dashes; |
|
|
|
var dashesArray = new float[srcDashes.Count]; |
|
|
|
|
|
|
|
for (var i = 0; i < srcDashes.Count; ++i) |
|
|
|
var count = srcDashes.Count % 2 == 0 ? srcDashes.Count : srcDashes.Count * 2; |
|
|
|
|
|
|
|
var dashesArray = new float[count]; |
|
|
|
|
|
|
|
for (var i = 0; i < count; ++i) |
|
|
|
{ |
|
|
|
dashesArray[i] = (float) srcDashes[i] * paint.StrokeWidth; |
|
|
|
dashesArray[i] = (float) srcDashes[i % srcDashes.Count] * paint.StrokeWidth; |
|
|
|
} |
|
|
|
|
|
|
|
var offset = (float)(pen.DashStyle.Offset * pen.Thickness); |
|
|
|
|
|
|
|
@ -1,7 +1,6 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Runtime.ExceptionServices; |
|
|
|
using Avalonia.Logging; |
|
|
|
using Avalonia.OpenGL; |
|
|
|
using Avalonia.OpenGL.Angle; |
|
|
|
@ -88,8 +87,6 @@ internal class AngleWin32PlatformGraphics : IPlatformGraphics |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
return new AngleWin32PlatformGraphics(egl, AngleWin32EglDisplay.CreateSharedD3D11Display(egl)); |
|
|
|
|
|
|
|
foreach (var api in (options?.AllowedPlatformApis ?? new [] |
|
|
|
{ |
|
|
|
AngleOptions.PlatformApi.DirectX11 |
|
|
|
|