|
|
@@ -2968,17 +2968,17 @@ private extension ViewController {
|
|
2968
|
2968
|
.foregroundColor: titleColor
|
|
2969
|
2969
|
])
|
|
2970
|
2970
|
let textWidth = (title as NSString).size(withAttributes: [.font: titleFont]).width
|
|
2971
|
|
- let idealWidth = ceil(textWidth + 74) // icon + extra left inset + cleaner side padding
|
|
|
2971
|
+ let idealWidth = ceil(textWidth + 80) // icon + spacing + side padding
|
|
2972
|
2972
|
scheduleGoogleAuthButtonWidthConstraint?.constant = min(320, max(188, idealWidth))
|
|
2973
|
2973
|
|
|
2974
|
2974
|
if signedIn {
|
|
2975
|
2975
|
let symbol = NSImage(systemSymbolName: "person.crop.circle.fill", accessibilityDescription: "Profile")
|
|
2976
|
|
- button.image = symbol.flatMap { resizedImage($0, to: NSSize(width: 20, height: 20)) }
|
|
2977
|
|
- button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 20, weight: .regular)
|
|
|
2976
|
+ button.image = symbol.flatMap { paddedTrailingImage($0, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8) }
|
|
|
2977
|
+ button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 22, weight: .regular)
|
|
2978
|
2978
|
button.contentTintColor = palette.textPrimary
|
|
2979
|
2979
|
} else {
|
|
2980
|
2980
|
if let g = NSImage(named: "GoogleGLogo") {
|
|
2981
|
|
- button.image = resizedImage(g, to: NSSize(width: 20, height: 20))
|
|
|
2981
|
+ button.image = paddedTrailingImage(g, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8)
|
|
2982
|
2982
|
} else {
|
|
2983
|
2983
|
button.image = nil
|
|
2984
|
2984
|
}
|
|
|
@@ -3013,7 +3013,7 @@ private extension ViewController {
|
|
3013
|
3013
|
if Task.isCancelled { return }
|
|
3014
|
3014
|
guard let image = NSImage(data: data) else { return }
|
|
3015
|
3015
|
await MainActor.run {
|
|
3016
|
|
- self?.scheduleGoogleAuthButton?.image = self?.resizedImage(image, to: NSSize(width: 20, height: 20))
|
|
|
3016
|
+ self?.scheduleGoogleAuthButton?.image = self?.paddedTrailingImage(image, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8)
|
|
3017
|
3017
|
self?.scheduleGoogleAuthButton?.contentTintColor = nil
|
|
3018
|
3018
|
}
|
|
3019
|
3019
|
} catch {
|
|
|
@@ -3034,6 +3034,20 @@ private extension ViewController {
|
|
3034
|
3034
|
return result
|
|
3035
|
3035
|
}
|
|
3036
|
3036
|
|
|
|
3037
|
+ private func paddedTrailingImage(_ image: NSImage, iconSize: NSSize, trailingPadding: CGFloat) -> NSImage {
|
|
|
3038
|
+ let base = resizedImage(image, to: iconSize)
|
|
|
3039
|
+ let canvas = NSSize(width: iconSize.width + trailingPadding, height: iconSize.height)
|
|
|
3040
|
+ let result = NSImage(size: canvas)
|
|
|
3041
|
+ result.lockFocus()
|
|
|
3042
|
+ base.draw(in: NSRect(x: 0, y: 0, width: iconSize.width, height: iconSize.height),
|
|
|
3043
|
+ from: NSRect(origin: .zero, size: base.size),
|
|
|
3044
|
+ operation: .copy,
|
|
|
3045
|
+ fraction: 1.0)
|
|
|
3046
|
+ result.unlockFocus()
|
|
|
3047
|
+ result.isTemplate = false
|
|
|
3048
|
+ return result
|
|
|
3049
|
+ }
|
|
|
3050
|
+
|
|
3037
|
3051
|
private func applyGoogleAuthButtonSurface() {
|
|
3038
|
3052
|
guard let button = scheduleGoogleAuthButton else { return }
|
|
3039
|
3053
|
let isDark = darkModeEnabled
|