From 0003812cf184f9a78baa9e2afa58ebb60f55b76e Mon Sep 17 00:00:00 2001 From: Vegard Bieker Matthey Date: Fri, 31 Jul 2026 21:07:30 +0200 Subject: [PATCH] fix: compare with correct color for marking selected --- ImageViewer/ViewController.swift | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/ImageViewer/ViewController.swift b/ImageViewer/ViewController.swift index 8b03484..9376e1b 100644 --- a/ImageViewer/ViewController.swift +++ b/ImageViewer/ViewController.swift @@ -2130,14 +2130,17 @@ func convertPageTurnModeToString(_ pageTurnMode: PageTurnMode) -> String { } extension ViewController { - private func colorItems(applyTo colorHandler: @escaping (UIColor) -> Void) -> [SettingsMenuItem] { + private func colorItems( + previous: UIColor, + applyTo colorHandler: @escaping (UIColor) -> Void + ) -> [SettingsMenuItem] { let items: [UIColor] = [.black, .white, .red, .blue] return items.map { color in SettingsMenuItem(title: convertColorToString(color), children: nil, action: { [weak self] in colorHandler(color) self?.dismiss(animated: false) }, - selected: { [weak self] in self?.readerView.backgroundColor == color }) + selected: { previous == color }) } } @@ -2207,15 +2210,19 @@ extension ViewController { } private func makeSettingsTree() -> [SettingsMenuItem] { - let backgroundColors = colorItems { [weak self] color in - self?.homeView.backgroundColor = color - self?.settings.homeBackgroundColor = self?.convertColorToString(color) ?? "White" - self?.saveSettings() - } - let defaultReadingBackgroundColor = colorItems { [weak self] color in - self?.settings.defaultReadingBackgroundColor = self?.convertColorToString(color) ?? "Black" - self?.saveSettings() - } + let backgroundColors = colorItems(previous: homeView.backgroundColor ?? + convertStringToColor(settings.homeBackgroundColor), + applyTo: { [weak self] color in + self?.homeView.backgroundColor = color + self?.settings.homeBackgroundColor = self?.convertColorToString(color) ?? "White" + self?.saveSettings() + }) + let defaultReadingBackgroundColor = colorItems(previous: readerView.backgroundColor ?? + convertStringToColor(settings.defaultReadingBackgroundColor), + applyTo: { [weak self] color in + self?.settings.defaultReadingBackgroundColor = self?.convertColorToString(color) ?? "Black" + self?.saveSettings() + }) let defaultPageTurnMode = pageTurnItems { [weak self] pageTurnMode in self?.settings.defaultPageTurnMode = pageTurnMode self?.saveSettings()