Features
- iOS and macOS backends now provide DateInput and TimeInput widgets. (#1939)
- The Android backend can now identify if dark mode is enabled. (#2841)
- Toga now has a layout debugging mode. If you set
TOGA_DEBUG_LAYOUT=1
in your app's runtime environment ortoga.Widget.DEBUG_LAYOUT_ENABLED == True
directly in the app's code, widgets will be rendered with different background colors, making it easier to identify how space is being allocated by Toga's layout algorithm. (#2953) toga.App.paths
properties now create the path on demand, if it does not already exist. (#3236)- The Web backend now provides Selection and Slider widgets. (#3334)
- Lazily loaded objects in the
toga
namespace now support type checking. (#3358) - Winforms now provides an ActivityIndicator widget. (#3473)
- WebViews on macOS now support file uploads. (#3484)
Pack.font_family
now accepts a list of possible values; text will be rendered with the first font family that is available. (#3526)- App paths are now cached upon first retrieval. (#3544)
- On Windows and GTK, Toga now supports loading arbitrary fronts from the user's system, in addition to Toga's predefined set of system fonts and any that you have registered. (This was already possible on Windows, but undocumented.) (#3569)
- On GTK, a document-based app with multiple file extensions registered will now provide a file type filter that will match all available document types. (#3570)
Bugfixes
- Attempting to refresh a window with no content no longer raises an error on Textual. (#2818)
- MultilineTextInput widget will no longer fire
on_change
events during creation on Windows. (#3290) - The Textual backend no longer raises superfluous console messages when the app shuts down. (#3399)
- Apps that use a function-based app startup method now validate that the startup method returns content that can be added to the main window. (#3444)
- Buttons in Toga Web now correctly respond to clicks and trigger their associated actions. (#3451)
- Table Widget on Windows now only fires one event on item selection. (#3472)
- Older Linux distributions (such as Ubuntu 22.04) that ship with GLib < 2.74 can now use GTK4 with Toga. (#3525)
- (#3531)
- On macOS,
MultilineTextInput
will no longer automatically convert straight quotes to smart quotes. (#3546) - A crash on Android 9 (and earlier) caused by a symbol that wasn't available on those versions has been resolved. (#3554)
- On macOS, document-based apps no longer raise an error on startup about the event loop already running. (#3570)
- When an app has no windows, GTK no longer returns an error when requesting
toga.App.current_window
. (#3570) - The conversion of HSL values with a hue between 240 and 330 has been corrected. The previous calculation reversed the red and green components of the converted colors. (#3584)
Backward Incompatible Changes
toga.Font
objects now raise anUnknownFontError
instead of silently falling back to system font if the font family can't be successfully loaded. (#3526)
Documentation
- Documentation for installing platform-specific dependencies has been improved. (#1688)
- Toga's documentation now uses a header and style consistent with the BeeWare website. (#3538)
- A topic guide on managing file paths has been added. (#3552)
Misc
- #2453, #2975, #3138, #3420, #3426, #3427, #3428, #3429, #3430, #3431, #3432, #3433, #3434, #3435, #3436, #3437, #3438, #3439, #3441, #3444, #3447, #3452, #3453, #3454, #3455, #3456, #3457, #3458, #3459, #3460, #3461, #3462, #3463, #3464, #3465, #3486, #3488, #3489, #3490, #3491, #3492, #3493, #3494, #3495, #3496, #3497, #3498, #3499, #3500, #3501, #3509, #3511, #3512, #3513, #3514, #3515, #3516, #3517, #3518, #3519, #3520, #3521, #3522, #3523, #3528, #3533, #3539, #3540, #3541, #3542, #3550, #3556, #3557, #3558, #3559, #3560, #3561, #3562, #3563, #3569, #3572, #3575, #3576, #3577, #3578, #3579, #3583, #3586, #3587, #3587, #3588, #3589, #3591, #3592, #3593, #3594, #3595, #3601, #3603, #3604, #3605, #3607, #3608, #3617, #3618, #3619, #3620, #3621, #3622, #3623, #3629