Fix: Individual disable HUDs

This commit is contained in:
Hariharan Mudaliar 2026-01-02 12:29:40 +05:30
commit 2f22e27902
No known key found for this signature in database
GPG key ID: 025583EB0BE5640E
3 changed files with 48 additions and 13 deletions

View file

@ -182,7 +182,7 @@ final class SystemChangesObserver: MediaKeyInterceptorDelegate {
}
// Send to Circular HUD if enabled
if Defaults[.enableCircularHUD] {
if Defaults[.enableCircularHUD] && Defaults[.enableVolumeHUD] {
Task { @MainActor in
CircularHUDWindowManager.shared.show(type: .volume, value: CGFloat(value))
}
@ -190,7 +190,7 @@ final class SystemChangesObserver: MediaKeyInterceptorDelegate {
}
// Send to Vertical HUD if enabled
if Defaults[.enableVerticalHUD] {
if Defaults[.enableVerticalHUD] && Defaults[.enableVolumeHUD] {
let icon = resolvedVolumeIcon(isMuted: isMuted)
VerticalHUDWindowManager.shared.show(type: .volume, value: CGFloat(value), icon: icon)
return
@ -228,7 +228,7 @@ final class SystemChangesObserver: MediaKeyInterceptorDelegate {
private func sendBrightnessNotification(value: Float) {
// Send to Circular HUD if enabled
if Defaults[.enableCircularHUD] {
if Defaults[.enableCircularHUD] && Defaults[.enableBrightnessHUD] {
Task { @MainActor in
CircularHUDWindowManager.shared.show(type: .brightness, value: CGFloat(value))
}
@ -236,7 +236,7 @@ final class SystemChangesObserver: MediaKeyInterceptorDelegate {
}
// Send to Vertical HUD if enabled
if Defaults[.enableVerticalHUD] {
if Defaults[.enableVerticalHUD] && Defaults[.enableBrightnessHUD] {
Task { @MainActor in
VerticalHUDWindowManager.shared.show(type: .brightness, value: CGFloat(value))
}
@ -266,7 +266,7 @@ final class SystemChangesObserver: MediaKeyInterceptorDelegate {
private func sendKeyboardBacklightNotification(value: Float) {
// Send to Circular HUD if enabled
if Defaults[.enableCircularHUD] {
if Defaults[.enableCircularHUD] && Defaults[.enableKeyboardBacklightHUD] {
Task { @MainActor in
CircularHUDWindowManager.shared.show(type: .backlight, value: CGFloat(value))
}
@ -274,7 +274,7 @@ final class SystemChangesObserver: MediaKeyInterceptorDelegate {
}
// Send to Vertical HUD if enabled
if Defaults[.enableVerticalHUD] {
if Defaults[.enableVerticalHUD] && Defaults[.enableKeyboardBacklightHUD] {
Task { @MainActor in
VerticalHUDWindowManager.shared.show(type: .backlight, value: CGFloat(value))
}

View file

@ -98,7 +98,7 @@ class SystemHUDManager {
// Observe individual HUD toggles
Defaults.publisher(.enableVolumeHUD, options: []).sink { [weak self] change in
guard let self = self, self.isSetupComplete, Defaults[.enableSystemHUD] else {
guard let self = self, self.isSetupComplete, self.requiresSystemToggleHandling else {
return
}
self.changesObserver?.update(
@ -109,7 +109,7 @@ class SystemHUDManager {
}.store(in: &cancellables)
Defaults.publisher(.enableBrightnessHUD, options: []).sink { [weak self] change in
guard let self = self, self.isSetupComplete, Defaults[.enableSystemHUD] else {
guard let self = self, self.isSetupComplete, self.requiresSystemToggleHandling else {
return
}
self.changesObserver?.update(
@ -120,7 +120,7 @@ class SystemHUDManager {
}.store(in: &cancellables)
Defaults.publisher(.enableKeyboardBacklightHUD, options: []).sink { [weak self] change in
guard let self = self, self.isSetupComplete, Defaults[.enableSystemHUD] else {
guard let self = self, self.isSetupComplete, self.requiresSystemToggleHandling else {
return
}
self.changesObserver?.update(
@ -166,6 +166,10 @@ class SystemHUDManager {
}
private var cancellables = Set<AnyCancellable>()
private var requiresSystemToggleHandling: Bool {
Defaults[.enableSystemHUD] || Defaults[.enableVerticalHUD] || Defaults[.enableCircularHUD]
}
/// Public property to check if system operations are in progress
var isOperationInProgress: Bool {
@ -206,10 +210,10 @@ class SystemHUDManager {
let keyboardBacklightEnabled: Bool
if Defaults[.enableCircularHUD] || Defaults[.enableVerticalHUD] {
// Vertical and Circular HUD support all events
volumeEnabled = true
brightnessEnabled = true
keyboardBacklightEnabled = true
// Respect per-control toggles so the system HUD can handle disabled events
volumeEnabled = Defaults[.enableVolumeHUD]
brightnessEnabled = Defaults[.enableBrightnessHUD]
keyboardBacklightEnabled = Defaults[.enableKeyboardBacklightHUD]
} else if Defaults[.enableCustomOSD] {
volumeEnabled = Defaults[.enableOSDVolume]
brightnessEnabled = Defaults[.enableOSDBrightness]