Browse Source

Merge branch 'master' into update-skia-sharp

pull/4406/head
danwalmsley 6 years ago
committed by GitHub
parent
commit
a02e636f76
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      src/Avalonia.Native/AvaloniaNativeMenuExporter.cs
  2. 4
      src/Avalonia.Visuals/ApiCompatBaseline.txt
  3. 8
      src/Avalonia.Visuals/Media/FontStyle.cs
  4. 3
      src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs
  5. 11
      src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs

11
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

@ -11,7 +11,7 @@ namespace Avalonia.Native
class AvaloniaNativeMenuExporter : ITopLevelNativeMenuExporter
{
private IAvaloniaNativeFactory _factory;
private bool _resetQueued;
private bool _resetQueued = true;
private bool _exported = false;
private IAvnWindow _nativeWindow;
private NativeMenu _menu;
@ -39,8 +39,7 @@ namespace Avalonia.Native
public void SetNativeMenu(NativeMenu menu)
{
_menu = menu == null ? new NativeMenu() : menu;
DoLayoutReset();
DoLayoutReset(true);
}
internal void UpdateIfNeeded()
@ -74,9 +73,9 @@ namespace Avalonia.Native
return result;
}
private void DoLayoutReset()
private void DoLayoutReset(bool forceUpdate = false)
{
if (_resetQueued)
if (_resetQueued || forceUpdate)
{
_resetQueued = false;
@ -109,7 +108,7 @@ namespace Avalonia.Native
if (_resetQueued)
return;
_resetQueued = true;
Dispatcher.UIThread.Post(DoLayoutReset, DispatcherPriority.Background);
Dispatcher.UIThread.Post(() => DoLayoutReset(), DispatcherPriority.Background);
}
private void SetMenu(NativeMenu menu)

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