Features
- The WebView widget now supports specifying static content on instantiation. (#2851)
- The content of a WebView can now be assigned using the
content
property, without providing a root URL for the content. (#2854) - Application of style properties has been streamlined to reduce redundant font creation and widget-refreshing. (#3273)
- The Canvas example app's UI controls have been reorganized and more clearly labeled. (#3321)
- The Web backend now supports the DateInput, ScrollContainer and TimeInput widgets. (#3334)
Bugfixes
- The asyncio event loop used on Winforms now shuts down correctly, ensuring there are no dangling resources on application exit. (#3266)
- Changing a widget's
text_direction
now triggers a layout refresh, since it can affect child positioning. (#3268) - Table rows are now highlighted on Winforms when the widget doesn't have focus. (#3269)
- Support for GTK3 installs that use a GIO release older than 2.72 has been restored. Ubuntu 22.04, and other Debian 12-derived systems are affected by this issue. (#3296)
- Some errors observed on the Web backend during app startup have been resolved. (#3301)
- An incompatibility with Textual 3.0 that caused log messages to be generated on the console on app exit has been resolved. (#3342)
- Window visibility and focus events in the web backend no longer raise errors when the browser window loses focus (#3345)
- A crash caused by the
name
argument added to asynchronous tasks in Python 3.13.3 has been corrected. (#3394) - The type annotation for directional style properties (
margin
, and the deprecatedpadding
alias) has been corrected. (#3396)
Backward Incompatible Changes
- Supplying multiple arguments to
BaseStyle.apply()
(and thereforePack.apply()
) has been deprecated. If you want to apply multiple arguments at once, apply them within thewith style_object.batch_apply()
context manager. (#3273) - The
anticlockwise
parameter to the Canvas drawing context'sarc
andellipse
methods (and theArc
andEllipse
drawing objects) has been deprecated; usecounterclockwise
instead. (#3300)
Misc
- #3261, #3262, #3263, #3267, #3272, #3275, #3277, #3278, #3279, #3280, #3281, #3283, #3284, #3288, #3289, #3291, #3292, #3294, #3302, #3303, #3304, #3305, #3306, #3307, #3308, #3309, #3310, #3311, #3312, #3313, #3314, #3315, #3316, #3317, #3318, #3319, #3320, #3331, #3332, #3336, #3341, #3342, #3346, #3347, #3348, #3349, #3350, #3351, #3352, #3353, #3354, #3355, #3356, #3357, #3363, #3364, #3365, #3366, #3367, #3368, #3369, #3370, #3371, #3372, #3373, #3374, #3375, #3376, #3377, #3378, #3379, #3380, #3381, #3382, #3383, #3384, #3385, #3386, #3404, #3406, #3407, #3408, #3409, #3410, #3411, #3412, #3413, #3414, #3415, #3416, #3417, #3418, #3419