From 8bf4d9105309612f2ade75c26ea80a4eca21f6ac Mon Sep 17 00:00:00 2001 From: Robin Kutesa Date: Mon, 1 Jun 2026 04:01:03 +0300 Subject: [PATCH] Fix priority menu icons: use UIImage.withTintColor for exact colored flags foregroundStyle is overridden by Menu tint; baking color into UIImage with .alwaysOriginal rendering mode is the only reliable approach. Co-Authored-By: Kutesir --- KisaniCal/Views/TodayView.swift | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/KisaniCal/Views/TodayView.swift b/KisaniCal/Views/TodayView.swift index 3d62451..efc0dfc 100644 --- a/KisaniCal/Views/TodayView.swift +++ b/KisaniCal/Views/TodayView.swift @@ -1547,8 +1547,7 @@ struct AddTaskSheet: View { Label { Text(p.label) } icon: { - Image(systemName: p == .none ? "flag" : "flag.fill") - .foregroundStyle(p.color) + Image(uiImage: priorityFlagImage(p)) } } } @@ -1635,6 +1634,20 @@ struct AddTaskSheet: View { priority: selectedPriority) dismiss() } + + private func priorityFlagImage(_ p: Priority) -> UIImage { + let name: String + let uiColor: UIColor + switch p { + case .high: name = "flag.fill"; uiColor = .systemRed + case .medium: name = "flag.fill"; uiColor = .systemYellow + case .low: name = "flag.fill"; uiColor = .systemBlue + case .none: name = "flag"; uiColor = .systemGray3 + } + let cfg = UIImage.SymbolConfiguration(pointSize: 17, weight: .medium) + return (UIImage(systemName: name, withConfiguration: cfg) ?? UIImage()) + .withTintColor(uiColor, renderingMode: .alwaysOriginal) + } } // MARK: - Task Date Picker Sheet