Browse Source

Merge pull request #4381 from Gillibald/fixes/FontStyleConversion

Fixes SKFontStyleSlant to FontStyle conversion
repro/carousel-not-materializing-content
danwalmsley 6 years ago
committed by GitHub
parent
commit
fe8d7a1b00
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Avalonia.Visuals/ApiCompatBaseline.txt
  2. 8
      src/Avalonia.Visuals/Media/FontStyle.cs
  3. 3
      src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs
  4. 11
      src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs

4
src/Avalonia.Visuals/ApiCompatBaseline.txt

@ -0,0 +1,4 @@
Compat issues with assembly Avalonia.Visuals:
EnumValuesMustMatch : Enum value 'Avalonia.Media.FontStyle Avalonia.Media.FontStyle.Italic' is (System.Int32)1 in the implementation but (System.Int32)2 in the contract.
EnumValuesMustMatch : Enum value 'Avalonia.Media.FontStyle Avalonia.Media.FontStyle.Oblique' is (System.Int32)2 in the implementation but (System.Int32)1 in the contract.
Total Issues: 2

8
src/Avalonia.Visuals/Media/FontStyle.cs

@ -11,13 +11,13 @@ namespace Avalonia.Media
Normal,
/// <summary>
/// An oblique font.
/// An italic font.
/// </summary>
Oblique,
Italic,
/// <summary>
/// An italic font.
/// An oblique font.
/// </summary>
Italic,
Oblique
}
}

3
src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs

@ -56,7 +56,8 @@ namespace Avalonia.Skia
continue;
}
var key = new FontKey(fontFamily.Name, (FontStyle)typeface.FontSlant, (FontWeight)typeface.FontWeight);
var key = new FontKey(fontFamily.Name, typeface.FontSlant.ToAvalonia(),
(FontWeight)typeface.FontWeight);
typeFaceCollection.AddTypeface(key, typeface);
}

11
src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs

@ -138,6 +138,17 @@ namespace Avalonia.Skia
}
}
public static FontStyle ToAvalonia(this SKFontStyleSlant slant)
{
return slant switch
{
SKFontStyleSlant.Upright => FontStyle.Normal,
SKFontStyleSlant.Italic => FontStyle.Italic,
SKFontStyleSlant.Oblique => FontStyle.Oblique,
_ => throw new ArgumentOutOfRangeException(nameof (slant), slant, null)
};
}
public static SKPath Clone(this SKPath src)
{
return src != null ? new SKPath(src) : null;

Loading…
Cancel
Save