Features
- Buttons can now be created with an icon, instead of a text label. (#774)
- Widgets and Windows can now be sorted. The ID of the widget is used for the sorting order. (#2190)
- The main window generated by the default
startup()
method of an app now has an ID ofmain
. (#2190) - A cross-platform API for camera access was added. (#2266, #2353)
- An OptionContainer widget was added for Android. (#2346)
Bugfixes
- New widgets with an ID matching an ID that was previously used no longer cause an error. (#2190)
App.current_window
on GTK now returnsNone
when all windows are hidden. (#2211)- Selection widgets on macOS can now include duplicated titles. (#2319)
- The padding around DetailedList on Android has been reduced. (#2338)
- The error returned when an Image is created with no source has been clarified. (#2347)
- On macOS,
toga.Image
objects can now be created from raw data that didn't originate from a file. (#2355) - Winforms no longer generates a system beep when pressing Enter in a TextInput. (#2374)
Backward Incompatible Changes
- Widgets must now be added to a window to be available in the widget registry for lookup by ID. (#2190)
- If the label for a Selection contains newlines, only the text up to the first newline will be displayed. (#2319)
- The internal Android method
intent_result
has been deprecated. This was an internal API, and not formally documented, but it was the easiest mechanism for invoking Intents on the Android backend. It has been replaced by the synchronousstart_activity
method that allows you to register a callback when the intent completes. (#2353)
Documentation
- Initial documentation of backend-specific features has been added. (#1798)
- The difference between Icon and Image was clarified, and a note about the lack of an
on_press
handler on ImageView was added. (#2348)