Features
- The GTK backend was modified to use PyGObject's native asyncio handling, instead of GBulb. (#2550)
- The ActivityIndicator widget is now supported on iOS. (#2829)
Bugfixes
- Windows retain their original size after being unminimized on Windows. (#2729)
- DOM storage is now enabled for WebView on Android. (#2767)
- A macOS app in full-screen mode now correctly displays the contents of windows that use a
toga.Box()
as the top-level content. (#2796) - Asynchronous tasks are now protected from garbage collection while they are running. This could lead to asynchronous tasks terminating unexpectedly with an error under some conditions. (#2809)
- When a handler is a generator, control will now always be released to the event loop between iterations, even if no sleep interval or a sleep interval of 0 is yielded. (#2811)
- When the X button is clicked for the About dialog on GTK, it is now properly destroyed. (#2812)
- The Textual backend is now compatible with versions of Textual after v0.63.3. (#2822)
- The event loop is now guaranteed to be running when your app's
startup()
method is invoked. This wasn't previously the case on macOS and Windows. (#2834) - iOS apps now correctly account for the size of the navigation bar when laying out app content. (#2836)
- A memory leak when using Divider or Switch widgets on iOS was resolved. (#2849)
- Apps bundled as standalone frozen binaries (e.g., POSIX builds made with PyInstaller) no longer crash on startup when trying to resolve the app icon. (#2852)