diff --git a/.gitignore b/.gitignore index 640725fa26..1d74816204 100644 --- a/.gitignore +++ b/.gitignore @@ -108,7 +108,7 @@ AppPackages/ # NCrunch _NCrunch_*/ *.ncrunchsolution.user -nCrunchTemp_*/ +nCrunchTemp_* # Others sql/ diff --git a/src/Avalonia.Visuals/Media/PathMarkupParser.cs b/src/Avalonia.Visuals/Media/PathMarkupParser.cs index fad55ed531..145013d76b 100644 --- a/src/Avalonia.Visuals/Media/PathMarkupParser.cs +++ b/src/Avalonia.Visuals/Media/PathMarkupParser.cs @@ -126,7 +126,9 @@ namespace Avalonia.Media case Command.CubicBezierCurve: { Point point1 = ReadPoint(reader, point, relative); + ReadSeparator(reader); Point point2 = ReadPoint(reader, point, relative); + ReadSeparator(reader); point = ReadPoint(reader, point, relative); _context.CubicBezierTo(point1, point2, point); break; diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs b/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs index 3b903b4436..e63d23283c 100644 --- a/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs +++ b/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs @@ -74,6 +74,10 @@ namespace Avalonia.Visuals.UnitTests.Media " M 16.6309 19.9063C 21.6309 24.1563 25.1309 26.1562 31.6309 28.6562C 31.6309 28.6562 26.3809 39.1562 18" + ".3809 36.1563C 18.3809 36.1563 18 38 16.3809 36.9063C 15 36 16.3809 34.9063 16.3809 34.9063C 16.3809 34" + ".9063 10.1309 30.9062 16.6309 19.9063 Z ")] + [InlineData( + "F1M16,12C16,14.209 14.209,16 12,16 9.791,16 8,14.209 8,12 8,11.817 8.03,11.644 8.054,11.467L6.585,10 4,10 " + + "4,6.414 2.5,7.914 0,5.414 0,3.586 3.586,0 4.414,0 7.414,3 7.586,3 9,1.586 11.914,4.5 10.414,6 " + + "12.461,8.046C14.45,8.278,16,9.949,16,12")] public void Should_Parse(string pathData) { using (AvaloniaLocator.EnterScope())