From bf25a4f7df184d5b3b56dee112e33283d1fa6fc9 Mon Sep 17 00:00:00 2001 From: burstein Date: Thu, 29 May 2025 16:04:54 +0300 Subject: [PATCH] Make variation settings accessible only on iOS commit_hash:a5d6d2ca0e8352cb36e3e490ee16a60c68211f5f --- .../DivKit/Fonts/FontVariationSettings.swift | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/client/ios/DivKit/Fonts/FontVariationSettings.swift b/client/ios/DivKit/Fonts/FontVariationSettings.swift index 37421e6df..7315d1cf9 100644 --- a/client/ios/DivKit/Fonts/FontVariationSettings.swift +++ b/client/ios/DivKit/Fonts/FontVariationSettings.swift @@ -1,7 +1,9 @@ -import UIKit +import CoreText +import Foundation +import VGSLUI -extension UIFont { - func withVariationSettings(axisTagToValue: [String: NSNumber]?) -> UIFont { +extension Font { + func withVariationSettings(axisTagToValue: [String: NSNumber]?) -> Font { guard let axisTagToValue else { return self } let ctfont = CTFontCreateWithName(fontName as CFString, pointSize, nil) guard let fontAxesRaw = CTFontCopyVariationAxes(ctfont) as? [Any] else { return self } @@ -33,9 +35,23 @@ extension UIFont { ) let descriptor = fontDescriptor.addingAttributes([ - kCTFontVariationAttribute as UIFontDescriptor.AttributeName: axisIdToValueFull, + kCTFontVariationAttribute as FontDescriptor.AttributeName: axisIdToValueFull, ]) - return UIFont(descriptor: descriptor, size: pointSize) + return makeFont(descriptor: descriptor, size: pointSize) } } + +#if os(iOS) || os(tvOS) +import UIKit +typealias FontDescriptor = UIFontDescriptor +private func makeFont(descriptor: FontDescriptor, size: CGFloat) -> Font { + Font(descriptor: descriptor, size: size) +} +#else +import AppKit +typealias FontDescriptor = NSFontDescriptor +private func makeFont(descriptor: FontDescriptor, size: CGFloat) -> Font { + Font(descriptor: descriptor, size: size)! +} +#endif