Skip to content

fix(ios): use minimal windowing control style on iPadOS 26 - #1250

Merged
FabianLars merged 2 commits into
tauri-apps:devfrom
velocitysystems:ios-windowing-mode
Jun 30, 2026
Merged

fix(ios): use minimal windowing control style on iPadOS 26#1250
FabianLars merged 2 commits into
tauri-apps:devfrom
velocitysystems:ios-windowing-mode

Conversation

@velocitysystems

@velocitysystems velocitysystems commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Resolves tauri-apps/tauri#15521

Description

iPadOS 26 adds macOS-style system window controls to the top-left corner of every windowed scene. Because a Tao window hosts a fullscreen WKWebView with no native toolbar, these controls do not contribute to the safe area and float on top of, overlapping, the web content. There is no native toolbar for them to integrate with.

Fix

Implement UIWindowSceneDelegate's optional preferredWindowingControlStyle(for:) method on TaoSceneDelegate, returning the minimal style. The minimal style places the controls in a safe-area strip above the content instead of floating over it. This is the same approach taken by Flutter and Capacitor.

No runtime version check is needed: preferredWindowingControlStyleForScene: is an optional protocol method the system only sends on iPadOS 26+, and the UISceneWindowingControlStyle class is resolved lazily at call time. On earlier iOS versions the conformance is inert and nothing changes.

This also enables the UISceneWindowingControlStyle and UIWindowScene features on objc2-ui-kit and bumps the objc2 crate family 0.3.0 -> 0.3.2, since the UISceneWindowingControlStyle type does not exist in 0.3.0. The bump is patch-level and the macOS build is unaffected.

Testing

  • cargo check --target aarch64-apple-ios -p tao compiles with no errors.
  • cargo check -p tao (macOS host) still compiles, confirming the dependency bump does not regress the desktop build.
  • Verified on iPadOS 26 on a physical device

Related

madsmtm/objc2#849

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Package Changes Through 118c980

There are 1 changes which include tao with minor

Planned Package Versions

The following package releases are the planned based on the context of changes in this pull request.

package current next
tao 0.35.3 0.36.0

Add another change file through the GitHub UI by following this link.


Read about change files or the docs at github.com/jbolda/covector

@socket-security

socket-security Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedobjc2-foundation@​0.3.0 ⏵ 0.3.210010093100100
Updatedobjc2-ui-kit@​0.3.0 ⏵ 0.3.210010093100100

View full report

@velocitysystems
velocitysystems marked this pull request as ready for review June 30, 2026 15:30
@velocitysystems
velocitysystems requested a review from a team as a code owner June 30, 2026 15:30
@velocitysystems

Copy link
Copy Markdown
Contributor Author

@FabianLars This now forces Tao to use the correct windowing mode on iOS 26 (and is compatible with iOS 27).
Can we get this into the next release? Thanks!

image

@FabianLars FabianLars left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have no means to test this atm but looks safe enough

@velocitysystems

Copy link
Copy Markdown
Contributor Author

i have no means to test this atm but looks safe enough

I've verified this with local debug + release builds and a CI/CD build pushed to TestFlight.

@FabianLars
FabianLars merged commit 3f70d07 into tauri-apps:dev Jun 30, 2026
20 checks passed
@github-actions github-actions Bot mentioned this pull request Jun 30, 2026
@velocitysystems
velocitysystems deleted the ios-windowing-mode branch June 30, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug] iPadOS 26 window controls overlap content with no way to offset or avoid them

2 participants