Fix macOS context menu always appearing in dark mode#369
Merged
kdroidFilter merged 3 commits intomasterfrom Feb 6, 2026
Merged
Fix macOS context menu always appearing in dark mode#369kdroidFilter merged 3 commits intomasterfrom
kdroidFilter merged 3 commits intomasterfrom
Conversation
- Add systemAppearance() helper to read system-wide theme from UserDefaults - Set NSMenu.appearance to match system theme instead of menu bar appearance - Update menu appearance when theme changes in MenuBarAppearanceObserver - Pass statusItem to nativeMenu() for consistency (future-proofing) The context menu now follows the global system theme (light/dark), independent of the menu bar appearance setting. Fixes issue where tray context menu remained in dark mode when system was in light mode.
- Add DistributedNotificationCenter observer for AppleInterfaceThemeChangedNotification - Track system theme separately from menu bar appearance - Update menu appearance immediately when system theme changes - Remove observer properly in invalidate() The context menu now updates dynamically when the user changes the system theme in System Preferences, without requiring app restart.
- Add updateMenuAppearance() helper to recursively update menu and all submenus - Replace direct appearance assignments with recursive updates - Ensures all submenu levels match the system theme Fixes issue where submenus remained in the wrong appearance when the system theme changed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The tray context menu on macOS was always appearing in dark mode, regardless of the system theme setting.
Solution
This PR implements three fixes:
1. System theme detection (
3f964ae)systemAppearance()helper to read system-wide theme from UserDefaultsNSMenu.appearanceto match system theme instead of menu bar appearance2. Dynamic theme updates (
07275e8)DistributedNotificationCenterobserver forAppleInterfaceThemeChangedNotification3. Submenu synchronization (
9df769d)updateMenuAppearance()helper to recursively update menu and all submenusTesting
Changes
maclib/tray.swiftonlyFixes issue where tray context menu remained in dark mode when system was in light mode.