tao
Cross-platform application window creation library in Rust.
0.37.x
0.37.1
-
365089b6(#1341 by @Legend-Master) On Windows, fix visibility flickers when calling windowing functions -
f79aa3a1(#1342 by @Legend-Master) On Windows, fixset_maximizedandset_minimizedcalls don't work if the window's built withwith_focused(false).Note: this change will also make that if the window is created through
with_focused(false), subsequentwindow.set_visible(true)calls will now focus the window (the current behavior is the window only gets focus if you callwindow.set_focus()orwindow.set_maximized(true)) this is consistent with the other platforms.
0.37.0
beb88249(#1304) Fix Android event loop hanging on first IPC call. When thendk_glueevent pipe and the wake fd became ready at the same time,ALooper_pollAllcould return the fd event instead ofALOOPER_POLL_WAKE, so the loop never drained the user-event channel and every invoke response sat there forever. The event loop now drains pending user events on every iteration, regardless of what the poll reported.27e4d01e(#1298) Fix a mismatched meta-variable name in theandroid_bindingmacro.992909acOn Windows, skipset_skip_taskbarifskip_taskbaris false when creating the window and on taskbar restars.95636d5f(#1301) On iOS, fixed a startup panic in debug builds on iOS versions older than 26, caused by registering the iOS 26-onlypreferredWindowingControlStyleForScene:method inside theUIWindowSceneDelegateprotocol block.a3ff3f03On iOS, always implementapplication:configurationForConnectingSceneSession:options:on the application delegate, using the role of the connecting session, so the tao scene delegate is installed whenever the system runs the app on the scene lifecycle - which iOS 26 and above does even for apps whose Info.plist does not declare aUIApplicationSceneManifest. Windows are now attached to a scene whenever one is connected instead of only when the Info.plist enables multiple scenes, and windows created before the first scene connects are adopted by it, so they are still displayed.eebd58f9(#1261) On iOS, emitWindowEvent::Destroyedfor a scene's windows when the scene disconnects. PreviouslysceneDidDisconnect:was a no-op, so windows tied to a scene never reported their destruction when the system reclaimed the scene.f6671e34(#1291) Bumped MSRV to 1.8504394e48(#1313) On Windows, fixWindowfunctions panics after the parent event loop dropped, they log the errors insteadf8722bd3(#1292) Updatedwindowsandwindows-coreto 0.62, this drop Windows 7 support, see https://github.com/microsoft/windows-rs/issues/3808493dc3a8(#1306) On Windows, delay maximizing the window if it's hidden to avoid it flashing briefly. This also changed the size and position returned to pre-maximized states if you query them with the window being hidden and calledmaximizebd1b990b(#1296) On Windows, fixed flashing title bar on undecorated windows creation36b31b79(#1157) Exits the process on receivingWM_ENDSESSIONmessage, this fixes thecannot move state from Destroyedcrash after receiving the message from Restart Manager
0.36.x
0.36.0
-
2b818c4e(#1288 by @Legend-Master) Breaking Change:Changed the names of the Android JNI lifecycle functions exposed by
android_binding!as follows:createtoonFirstActivityCreateonActivityCreatetoonCreatestarttoonStartresumetoonResumepausetoonPausestoptoonStop- Removed
onActivitySaveInstanceState onActivityDestroytoonDestroyonActivityLowMemorytoonLowMemory
onLowMemoryno longer takes any parameters.onFirstActivityCreateno longer takes any parameters. -
4d5005ff(#1173 by @sftse)fn set_min_inner_size,fn set_max_inner_size,fn set_inner_size_constraints,fn set_fullscreenandfn set_themeonWindowwere not properly thread-safe on Linux. -
2ff9e3e9(#1271 by @Legend-Master) FixEventLoopProxy::send_eventsometimes doesn't deliver the event until the nextEventLoopProxy::send_eventcall -
14a6dec2(#1252 by @Legend-Master) Fix getting the DPI internally leaksHDChandles on Windows. Also only callGetDCwhen on < Windows 8.1 which improves its performance. -
47d38f36(#1228 by @ushinohama966) fix(linux): map JIS keyboard specific keys (Zenkaku_Hankaku,Hiragana_Katakana,Henkan,Muhenkan) inraw_key_to_keyto prevent them from becomingKey::Unidentified. -
2ada91bf(#1254 by @tenderdeve) On macOS, re-apply the custom traffic light inset after a title change and after leaving fullscreen, so the buttons no longer jump back to their default position on those events. -
07f3742b(#1218 by @dgerhardt) On Linux, multiple issues regarding window decoration handling for Wayland have been fixed (#899, #1046, tauri-apps/tauri#6562, tauri-apps/tauri#13440, tauri-apps/tauri#13749, tauri-apps/tauri#14251, tauri-apps/tauri#14748). Title bar buttons and changing of the title should now work as expected. Furthermore, client-side decorations are no longer applied, when server-side decorations are supported. SSD are no longer applied when decorations are disabled for a window during creation. Toggling of SSD rendering for existing windows is however not supported at this time. -
dad6b990(#1266 by @FabianLars) Tao now initializesndk-contextagain. This happens in the first onActivityCreate call and uses an Application context instead of an Activity context. -
729bbcad(#1270 by @ahirner) Prevent iOS apps from aborting when UIKit lays out a Tao view while it is temporarily detached from its window. -
f2163508(#1245 by @velocitysystems) Prevent use-after-free in iOSconfigurationForConnectingSceneSessionthat crashes release builds on launch. -
3f70d07c(#1250 by @velocitysystems) Fix iPadOS 26 system window controls overlappingWKWebViewcontent by implementingpreferredWindowingControlStyleForScene:on the scene delegate and returning theminimalstyle. The optional protocol method is a no-op on iOS versions earlier than 26. -
87c46b52(#1238 by @Legend-Master) Refactored some Windows keyboard internal implementations to catch up with winit, there should not be any behavior changes, please report if you find one -
f7f8173d(#1264 by @seemoer) Release the window state lock before updating taskbar visibility on Windows to avoid a reentrantTaskbarCreateddeadlock. -
71b59efe(#1209 by @lucasfernog) Moved Android and iOS lifecycle events toWindowEvent, includingStarted,Stopped,Suspended, andResumed, so they are emitted for the specific window whose activity or scene changed lifecycle state. -
87c46b52(#1238 by @Legend-Master)WindowEvent::ReceivedImeTextevent's text is now coming fromImmGetCompositionStringWinstead of a recordingWM_CHARandWM_SYSCHARmessages -
5f209bd8(#1231 by @Legend-Master) Fixedwith_background_colordoesn't work on initial load on Windows -
c704261c(#1215 by @chuwik) Avoid Windows keyboard and IME deadlocks caused by re-entrant message processing while input state locks are held. -
5f209bd8(#1231 by @Legend-Master) Removed window subclassing on Windows
Dependencies
- Upgraded to
tao-macros@0.1.4
0.35.x
0.35.3
0.35.2
0.35.1
f3363af7(#1212 by @lucasfernog) Describe exceptions when they are raised by a JNI call.
0.35.0
-
4e7c2f4a(#1154 by @lucasfernog) Breaking change: The Android activity should now reference and call the following external functions:private external fun onActivityCreate(activity)private external fun start()private external fun resume()private external fun pause()private external fun stop()private external fun onActivitySaveInstanceState()private external fun onActivityDestroy(activity)private external fun onActivityLowMemory() -
18040018(#1146 by @JeffTsang)Event::Resumedis now only emitted when the app is actually resumed (going back to foreground) so it won't be called on app startup. -
56e9840b(#1141 by @haecker-felix) Use the Linux XDG Desktop Portal to add support for the system color scheme. Needsdbusfeature flag. -
4e7c2f4a(#1154 by @lucasfernog) Added multi-window support for iOS and Android.Leverages scenes on iOS and Activity embedding on Android.
iOS:
- Added Event::SceneRequested (on iPad the user can request a new window to be open - e.g. by long pressing the app icon and selecting "New window")
- Request new scene to be created on Window::new (if needed, main scene is detected automatically) and assign the window instance later when it gets connected
Android:
- Create new activity on Window::new (if needed, main activity is detected automatically)
- Added builder methods to determine the activity to be created
- System determines what to do with the activity (new stack, next to another one.. based on the embedding rules)
-
9cea0358(#1155 by @lucasfernog) FireEvent::Openedon Android, which now requires the activity to call the onNewIntent(intent) external function. -
18040018(#1146 by @JeffTsang) Use WillEnterForeground instead of DidBecomeActive for Event::Resumed in iOS.
0.34.x
0.34.8
0.34.7
541cf20e(#1190 by @damadczar) fix(linux): exit cleanly when GtkApplication is a remote GIO instance
0.34.6
a4837862(#1189 by @thomaseizinger) Downgrades several logs in the Windows backend from WARN to DEBUG.e1c9cb69(#1185 by @kanatapple) Prevent panics on Windows when a monitor handle becomes invalid during info retrieval.e196538f(#1165 by @Slinetrac) fix(windows): respect default app mode via registry in dark mode detectiona133504b(#1184 by @Tunglies) Replace NSString::from_str with ns_string macro in macOS. No user facing changes.
0.34.5
92e22209(#1152 by @lucasfernog) EmitEvent::LoopDestroyedon activity destroy on Android.da1514be(#1150 by @Legend-Master) Fix maximized windows have empty edges when using auto hide task bar on Windows
0.34.4
25f2c58a(#1148 by @lucasfernog) TriggerWindowEvent::Destroyedwhen the Android activity is destroyed. In this case, the app should either exit by setting the control flow toControlFlow::ExitWithCodeor NOT call the create() external function when the activity is recreated andonCreateis called, handling how to recreate the app window via a separate hook that can leverage the existing tao event loop.
0.34.3
0defcd01(#1132 by @Legend-Master) Exclude audit PDF file from the crate published to crates.io3969a1a4(#1138 by @aspcartman) On macOS, fixed an issue that caused the window background color to be applied incorrectly (typically black).28f5a96a(#1119 by @Legend-Master) FixWindowEvent::MouseWheeldoesn't account for mouse wheel speed settingsa1edbeb4(#1126 by @Legend-Master) EmitEvent::LoopDestroyedon receivingWM_ENDSESSIONmessage on Windows
0.34.2
60a47340(#1108 by @Simon-Laux) feat: MacOS: add universal applink support by implementingapplication:willContinueUserActivityWithType:andapplication:continueUserActivity:restorationHandler:, reusing the existingEvent::Opened { urls }event for the user facing api.
0.34.1
f73c70fd(#1120 by @robertrpf) AddedWindowBuilder::with_focusableto allow creating unfocusable windows.f73c70fd(#1120 by @robertrpf) AddedWindow::set_focusable.
0.34.0
773d324b(#1121 by @FabianLars) Fixed an issue that caused a panic on macOS when tao receivednilfrom the OS when trying to get the current NSScreen.ba65486a(#1107 by @Legend-Master) Fix initial position gets reset to 0 on Windows if it's accounted for the shadow4a085054(#1103 by @aurelj) Addedx11feature flag (enabled by default).
0.33.x
0.33.0
dae6d887(#1100 by @Legend-Master) Updatedwindowsto0.61.
0.32.x
0.32.8
b863d49c(#1058 by @1111mp) macOS: Addset_dock_visibilitymethod to support setting the visibility of the application in the dock.996e28df(#1090 by @lucasfernog) Fix crash when sending key event when macOS app has no window opened.dd9251a8(#1091 by @1111mp) FixWindow::theme()always returningTheme::LightandWindowEvent::ThemeChanged()not delivered on macOS.
0.32.7
0.32.6
9d1da74b(#1080 by @amrbashir) Fix crash on Windows because of missing functions on older Windows systems, regression in 0.32
0.32.5
08c9c4c6(#1078 by @amrbashir) FixWindow::set_focusregression on macOS
0.32.4
4679d683(#1056 by @dgerhardt) On Windows 11, fix incorrect window positioning and sizing onWM_DPICHANGED.
0.32.3
c91dcde7(#1075 by @Legend-Master) On Windows, fixWindow::inner_sizealways returns the restore size instead of the current size for maximized undecorated window
0.32.2
b296cf53(#1074 by @amrbashir) On Windows, addWindowExtWindows::has_undecorated_shadowto check if window has shadows for undecorated window or not.f4ec11d7(#1070 by @Legend-Master) Fix undecorated top left and right border resizing direction on Windows
0.32.1
1be722db(#1071 by @lucasfernog) Fix content protection on macOS crashing the app.
0.32.0
94afde98(#1040 by @Teddytrombone) Add missing function keys F13-F24 to linux implementation36645136(#1050 by @FabianLars) Raised MSRV to 1.748c8f0e8b(#1049 by @madsmtm) Useobjc2.6fda4984(#1048 by @madsmtm) macOS: RemoveFrom<ActivationPolicy>implementation forcocoa::appkit::NSApplicationActivationPolicy.28f728c7(#1068 by @Legend-Master) Updatewindowsto 0.605cc92980(#1052 by @amrbashir) On Windows, fix regressionWindow::inner_sizereporting larger size than what's visible for undecorated window.5cc92980(#1052 by @amrbashir) On Windows, undecorated window with shadows, now have native resize handles outside of the window client area.
Full Changelog
Version List
- v0.37.1 Sep 26, 2026
- v0.37.0 Aug 21, 2026
- v0.36.0 Jul 29, 2026
- v0.35.3 May 23, 2026
- v0.35.2 May 4, 2026
- v0.35.1 May 4, 2026
- v0.35.0 Mar 23, 2026
- v0.34.8 Mar 22, 2026
- v0.34.7 Mar 22, 2026
- v0.34.6 Mar 4, 2026
- v0.34.5 Oct 20, 2025
- v0.34.4 Oct 16, 2025
- v0.34.3 Sep 1, 2025
- v0.34.2 Aug 18, 2025
- v0.34.1 Aug 17, 2025
- v0.34.0 Jun 24, 2025
- v0.33.0 Apr 7, 2025
- v0.32.8 Mar 7, 2025
- v0.32.7 Mar 4, 2025
- v0.32.6 Feb 28, 2025
- v0.32.5 Feb 28, 2025
- v0.32.4 Feb 27, 2025
- v0.32.3 Feb 26, 2025
- v0.32.2 Feb 26, 2025
- v0.32.1 Feb 24, 2025
- v0.32.0 Feb 22, 2025
- v0.31.1 Jan 4, 2025
- v0.31.0 Dec 8, 2024
- v0.30.7 Nov 11, 2024
- v0.30.6 Nov 9, 2024
- v0.30.5 Oct 29, 2024
- v0.30.4 Oct 28, 2024
- v0.30.3 Oct 4, 2024
- v0.30.2 Sep 24, 2024
- v0.30.1 Sep 19, 2024
- v0.30.0 Sep 2, 2024
- v0.29.1 Aug 21, 2024
- v0.29.0 Aug 16, 2024
- v0.28.1 Jun 12, 2024
- v0.28.0 May 7, 2024
- v0.27.1 Apr 22, 2024
- v0.27.0 Apr 1, 2024
- v0.26.2 Mar 26, 2024
- v0.26.1 Feb 28, 2024
- v0.26.0 Feb 21, 2024
- v0.25.0 Feb 3, 2024
- v0.24.1 Jan 16, 2024
- v0.24.0 Nov 20, 2023
- v0.23.0 Oct 18, 2023
- v0.22.3 Oct 16, 2023
- v0.22.2 Aug 17, 2023
- v0.22.1 Aug 15, 2023
- v0.22.0 Aug 13, 2023
- v0.21.1 Jul 30, 2023
- v0.21.0 Jul 14, 2023
- v0.20.0 May 22, 2023
- v0.19.1 May 6, 2023
- v0.19.0 Apr 14, 2023
- v0.18.3 Mar 24, 2023
- v0.18.2 Mar 23, 2023
- v0.18.1 Feb 20, 2023
- v0.18.0 Feb 7, 2023
- v0.17.0 Jan 26, 2023
- v0.16.0 Jan 11, 2023
- v0.15.9 Jan 11, 2023
- v0.15.8 Dec 16, 2022
- v0.15.7 Dec 10, 2022
- v0.15.6 Nov 21, 2022
- v0.15.5 Nov 20, 2022
- v0.15.4 Nov 16, 2022
- v0.15.3 Nov 9, 2022
- v0.15.2 Nov 8, 2022
- v0.15.1 Nov 8, 2022
- v0.15.0 Nov 8, 2022
- v0.14.0 Sep 13, 2022
- v0.13.3 Aug 14, 2022
- v0.13.2 Aug 9, 2022
- v0.13.1 Jul 29, 2022
- v0.13.0 Jul 27, 2022
- v0.12.2 Jul 21, 2022
- v0.12.1 Jul 1, 2022
- v0.12.0 Jun 28, 2022
- v0.11.2 Jun 14, 2022
- v0.11.1 Jun 14, 2022
- v0.11.0 Jun 14, 2022
- v0.10.0 May 30, 2022
- v0.9.1 May 23, 2022
- v0.9.0 May 23, 2022
- v0.8.5 May 18, 2022
- v0.8.4 May 4, 2022
- v0.8.3 Apr 26, 2022
- v0.8.2 Apr 13, 2022
- v0.8.1 Apr 6, 2022
- v0.8.0 Apr 5, 2022
- v0.7.0 Mar 28, 2022
- v0.6.4 Mar 7, 2022
- v0.6.3 Mar 1, 2022
- v0.6.2 Feb 13, 2022
- v0.6.1 Feb 10, 2022
- v0.6.0 Feb 5, 2022
- v0.5.2 Aug 12, 2021
- v0.5.1 Aug 9, 2021
- v0.5.0 Aug 8, 2021
- v0.4.0 Jul 14, 2021
- v0.3.1 Jun 23, 2021
- v0.3.0 Jun 21, 2021
- v0.2.6 May 17, 2021
- v0.2.5 May 17, 2021
- v0.2.4 May 17, 2021
- v0.2.3 May 10, 2021
- v0.2.2 May 9, 2021
- v0.2.1 May 9, 2021
- v0.2.0 May 8, 2021
© 2026 Tauri Contributors. CC-BY / MIT