fix: merge macOS 26 compatibility fixes#940
Open
lilaflo wants to merge 81 commits into
Open
Conversation
Misc additional changes and cleanup
`RunLoopLocalEventMonitor` seems to prevent certain buttons from receiving events in macOS 26 Developer Beta 1. This might be a bug in the beta, or `RunLoopLocalEventMonitor` itself. For now, let's just move to a better mouse check implementation that doesn't use continuous event monitoring. Note the `FIXME` (line 1057). The previous implementation had this problem too, but it was never documented.
A big part of this is hopefully a temporary measure. We need an accurate identifier for every item, and the old way just isn't cutting it right now. Items are all owned by the Control Center in macOS 26, and try as I might, I couldn't find a great way to get the _actual_ host apps for the items. Must dig deeper into the mines... Oh yeah, there's also a bunch of random stuff here too that I don't really want to explain. Just know that it probably all fixed something.
This is what I get for trusting Xcode to update my build settings
- Refactor screen capture - Rework menu bar item getters - Update immovable/non-hideable info lists - Remove OSLog wrapper - Minor migration rework - Remove old entitlements file
Should also fix a crash when accessing `ControlItem.windowNumber`.
- Rework app lifecycle - Rework how windows are initialized - Update documentation comments - Refactoring and cleanup
This should fix some performance issues that occur during mouse tracking operations (e.g. highlighting a button on hover).
We also store the status item and layout constraint in a separate storage class. Not sure I like this, but the idea is to convey the tightly coupled relationship between the constraint and status item, and to ensure that they are initialized (and deinitialized) at the same time.
Relying on the default behavior seemed to work fine, but is now broken in the macOS 26 Developer Beta. Probably better to handle it explicitly, even if it is just a beta bug.
- Documentation changes
- Misc event handling improvements - Fix temporarily shown item interface check - Fix broken on screen item check - Additional minor refactoring
Revert to using a direct call to the `CGImage` initializer, rather than calling it through a static protocol method (this was originally done to suppress the deprecation warning, but it seems to cause screen capture to fail for some users).
…ing its monitors
emindeniz99
pushed a commit
to emindeniz99/Ice
that referenced
this pull request
May 13, 2026
…a11y amber) * Updates.swift — when Sparkle wants to show a scheduled update prompt while Ice is in the background, activate the app with a regular policy and return `true` so the dialog comes up in front with key focus. Previously we returned `false` and Sparkle put the dialog up anyway, with Ice still .accessory — on macOS 26 the window then refused to accept clicks, which is the cluster of reports in jordanbaird#912 / jordanbaird#926 / jordanbaird#931 / jordanbaird#932 / jordanbaird#937. Same fix is applied to `standardUserDriverWillHandleShowingUpdate` for the user-initiated path. (Adapted from arifim's PR jordanbaird#945.) * PermissionsView.swift — replace plain `.yellow` on the "Continue in Limited Mode" button with a darker amber (sRGB 0.75/0.45/0). The original failed accessibility contrast against the light button background. (Adapted from aramb-dev's PR jordanbaird#942 — the asset-catalog refinement in later commits of that PR is deferred since the current Xcode-26 sync of the project doesn't include the new colorset directory.) Skipped this round: * PR jordanbaird#940 (lilaflo) is an 80-commit re-application of jordanbaird/macos-26 onto another branch — same commits we already carry, nothing new. * PR jordanbaird#944 (aathanwwt) targets CompactSlider 2.x's removed `gestureOptions:` parameter. Package.resolved locks us at 1.2.1 with the upper bound at <2.0, so the parameter still exists in the version we ship. * PR jordanbaird#941 (lixiaoning) notch-auto-hide. The diff references `MenuBarItem.info`, `MenuBarItemTag.iceIcon`, `controlItem.state == .hideItems`, and several private flags (`isMovingItem`, `isMouseButtonDown`, `tempShownItemContexts`, `itemMoveCount`) that don't exist in the macos-26 refactor of MenuBarItemManager. Adapting it would mean rewriting the helper against a different cache architecture, which I shouldn't do without a notched display to verify against. The negative windowNumber guard in the same PR is a no-op for us because we don't read `NSWindow.windowNumber` anywhere in the macos-26 branch.
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.
Summary
macos-26branch (77 commits) intomainto fix crashes and compatibility issues on macOS 26.4.1 (Tahoe, build 25E253)EXC_BREAKPOINTcrash at startup caused by menu bar item display ID retrieval changes in macOS 26MenuBarItemServiceXPC service for improved menu bar item handlingChanges
SourcePIDCachefor macOS 26 compatibilityHIDEventManagerfor better reliability across environmentsbutton.window?.contentView?.constraintson macOS 26Testing