From 02776f044c866a4e3e313a48eeb758524d2c68b4 Mon Sep 17 00:00:00 2001 From: Louis Pontoise Date: Tue, 28 Jul 2020 23:16:15 +0900 Subject: [PATCH] feat: preference to hide colored circles on mouse hover (closes #460) --- src/logic/Preferences.swift | 2 ++ src/ui/main-window/ThumbnailView.swift | 2 +- src/ui/preferences-window/tabs/AppearanceTab.swift | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/logic/Preferences.swift b/src/logic/Preferences.swift index b67c77ec..ea519449 100644 --- a/src/logic/Preferences.swift +++ b/src/logic/Preferences.swift @@ -27,6 +27,7 @@ class Preferences { "showHiddenWindows": "true", "showHiddenWindows2": "true", "showTabsAsWindows": "false", + "hideColoredCircles": "false", "windowDisplayDelay": "0", "theme": "0", "showOnScreen": "0", @@ -79,6 +80,7 @@ class Preferences { static var showMinimizedWindows: [Bool] { ["showMinimizedWindows", "showMinimizedWindows2"].map { defaults.bool($0) } } static var showHiddenWindows: [Bool] { ["showHiddenWindows", "showHiddenWindows2"].map { defaults.bool($0) } } static var showTabsAsWindows: Bool { defaults.bool("showTabsAsWindows") } + static var hideColoredCircles: Bool { defaults.bool("hideColoredCircles") } static var windowDisplayDelay: DispatchTimeInterval { DispatchTimeInterval.milliseconds(defaults.int("windowDisplayDelay")) } static var fadeOutAnimation: Bool { defaults.bool("fadeOutAnimation") } static var hideSpaceNumberLabels: Bool { defaults.bool("hideSpaceNumberLabels") } diff --git a/src/ui/main-window/ThumbnailView.swift b/src/ui/main-window/ThumbnailView.swift index 8f9a13d9..5d02aed8 100644 --- a/src/ui/main-window/ThumbnailView.swift +++ b/src/ui/main-window/ThumbnailView.swift @@ -62,7 +62,7 @@ class ThumbnailView: NSStackView { if let shouldShowWindowControls = shouldShowWindowControls_ { self.shouldShowWindowControls = shouldShowWindowControls } - let shouldShow = shouldShowWindowControls && isHighlighted + let shouldShow = shouldShowWindowControls && isHighlighted && !Preferences.hideColoredCircles if isShowingWindowControls != shouldShow { isShowingWindowControls = shouldShow [closeIcon, minimizeIcon, maximizeIcon].forEach { $0.isHidden = !shouldShow } diff --git a/src/ui/preferences-window/tabs/AppearanceTab.swift b/src/ui/preferences-window/tabs/AppearanceTab.swift index dae6feb5..922818bd 100644 --- a/src/ui/preferences-window/tabs/AppearanceTab.swift +++ b/src/ui/preferences-window/tabs/AppearanceTab.swift @@ -22,6 +22,7 @@ class AppearanceTab: NSViewController, PreferencePane { LabelAndControl.makeLabelWithCheckbox(NSLocalizedString("Fade out animation:", comment: ""), "fadeOutAnimation", extraAction: { _ in App.app.thumbnailsPanel.updateFadeOutAnimation() }), LabelAndControl.makeLabelWithCheckbox(NSLocalizedString("Hide space number labels:", comment: ""), "hideSpaceNumberLabels"), LabelAndControl.makeLabelWithCheckbox(NSLocalizedString("Show standard tabs as windows:", comment: ""), "showTabsAsWindows"), + LabelAndControl.makeLabelWithCheckbox(NSLocalizedString("Hide colored circles on mouse hover:", comment: ""), "hideColoredCircles"), ]) grid.column(at: 0).xPlacement = .trailing grid.rowAlignment = .lastBaseline