Browse Source

Merge branch 'master' into removed-dead-code

pull/4871/head
Jumar Macato 6 years ago
committed by GitHub
parent
commit
01409c48af
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      src/Avalonia.Input/KeyGesture.cs
  2. 44
      src/Skia/Avalonia.Skia/GlyphTypefaceImpl.cs

5
src/Avalonia.Input/KeyGesture.cs

@ -144,7 +144,10 @@ namespace Avalonia.Input
return s.ToString(); return s.ToString();
} }
public bool Matches(KeyEventArgs keyEvent) => ResolveNumPadOperationKey(keyEvent.Key) == Key && keyEvent.KeyModifiers == KeyModifiers; public bool Matches(KeyEventArgs keyEvent) =>
keyEvent != null &&
keyEvent.KeyModifiers == KeyModifiers &&
ResolveNumPadOperationKey(keyEvent.Key) == ResolveNumPadOperationKey(Key);
// TODO: Move that to external key parser // TODO: Move that to external key parser
private static Key ParseKey(string key) private static Key ParseKey(string key)

44
src/Skia/Avalonia.Skia/GlyphTypefaceImpl.cs

@ -1,6 +1,5 @@
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using Avalonia.Media;
using Avalonia.Platform; using Avalonia.Platform;
using HarfBuzzSharp; using HarfBuzzSharp;
using SkiaSharp; using SkiaSharp;
@ -24,40 +23,33 @@ namespace Avalonia.Skia
Font.SetFunctionsOpenType(); Font.SetFunctionsOpenType();
Font.GetScale(out var xScale, out _); DesignEmHeight = (short)Typeface.UnitsPerEm;
DesignEmHeight = (short)xScale; var metrics = Typeface.ToFont().Metrics;
if (!Font.TryGetHorizontalFontExtents(out var fontExtents)) const double defaultFontRenderingEmSize = 12.0;
{
Font.TryGetVerticalFontExtents(out fontExtents);
}
Ascent = -fontExtents.Ascender; Ascent = (int)(metrics.Ascent / defaultFontRenderingEmSize * Typeface.UnitsPerEm);
Descent = -fontExtents.Descender; Descent = (int)(metrics.Descent / defaultFontRenderingEmSize * Typeface.UnitsPerEm);
LineGap = fontExtents.LineGap; LineGap = (int)(metrics.Leading / defaultFontRenderingEmSize * Typeface.UnitsPerEm);
if (Font.OpenTypeMetrics.TryGetPosition(OpenTypeMetricsTag.UnderlineOffset, out var underlinePosition)) UnderlinePosition = metrics.UnderlinePosition != null ?
{ (int)(metrics.UnderlinePosition / defaultFontRenderingEmSize * Typeface.UnitsPerEm) :
UnderlinePosition = underlinePosition; 0;
}
if (Font.OpenTypeMetrics.TryGetPosition(OpenTypeMetricsTag.UnderlineSize, out var underlineThickness)) UnderlineThickness = metrics.UnderlineThickness != null ?
{ (int)(metrics.UnderlineThickness / defaultFontRenderingEmSize * Typeface.UnitsPerEm) :
UnderlineThickness = underlineThickness; 0;
}
if (Font.OpenTypeMetrics.TryGetPosition(OpenTypeMetricsTag.StrikeoutOffset, out var strikethroughPosition)) StrikethroughPosition = metrics.StrikeoutPosition != null ?
{ (int)(metrics.StrikeoutPosition / defaultFontRenderingEmSize * Typeface.UnitsPerEm) :
StrikethroughPosition = strikethroughPosition; 0;
}
if (Font.OpenTypeMetrics.TryGetPosition(OpenTypeMetricsTag.StrikeoutSize, out var strikethroughThickness)) StrikethroughThickness = metrics.StrikeoutThickness != null ?
{ (int)(metrics.StrikeoutThickness / defaultFontRenderingEmSize * Typeface.UnitsPerEm) :
StrikethroughThickness = strikethroughThickness; 0;
}
IsFixedPitch = Typeface.IsFixedPitch; IsFixedPitch = Typeface.IsFixedPitch;
} }

Loading…
Cancel
Save