The scarily good release
Just in time for Halloween, we have a new release. There are a lot of fixes, and improvement to startup time. A few breaking changes that are unlikely to impact many people.
We also reached the scary milestone of 666 forks!
[0.41.0] - 2023-10-31
Fixed
- Fixed
Input.cursor_blink
reactive not changing blink state afterInput
was mounted #3498 - Fixed
Tabs.active
attribute value not being re-assigned after removing a tab or clearing #3498 - Fixed
DirectoryTree
race-condition crash when changing path #3498 - Fixed issue with
LRUCache.discard
#3537 - Fixed
DataTable
not scrolling to rows that were just added #3552 - Fixed cache bug with
DataTable.update_cell
#3551 - Fixed CSS errors being repeated #3566
- Fix issue with chunky highlights on buttons #3571
- Fixed
OptionList
event leakage fromCommandPalette
toApp
. - Fixed crash in
LoadingIndicator
#3498 - Fixed crash when
Tabs
appeared as a descendant ofTabbedContent
in the DOM #3602 - Fixed the command palette cancelling other workers #3615
Added
- Add Document
get_index_from_location
/get_location_from_index
#3410 - Add setter for
TextArea.text
#3525 - Added
key
argument to theDataTable.sort()
method, allowing the table to be sorted using a custom function (or other callable) #3090 - Added
initial
to all css rules, which restores default (i.e. value from DEFAULT_CSS) #3566 - Added HorizontalPad to pad.py #3571
- Added
AwaitComplete
class, to be used for optionally awaitable return values #3498
Changed
- Breaking change:
Button.ACTIVE_EFFECT_DURATION
classvar converted toButton.active_effect_duration
attribute #3498 - Breaking change:
Input.blink_timer
made private (renamed toInput._blink_timer
) #3498 - Breaking change:
Input.cursor_blink
reactive updated to not run on mount (nowinit=False
) #3498 - Breaking change:
AwaitTabbedContent
class removed #3498 - Breaking change:
Tabs.remove_tab
now returns anAwaitComplete
instead of anAwaitRemove
#3498 - Breaking change:
Tabs.clear
now returns anAwaitComplete
instead of anAwaitRemove
#3498 TabbedContent.add_pane
now returns anAwaitComplete
instead of anAwaitTabbedContent
#3498TabbedContent.remove_pane
now returns anAwaitComplete
instead of anAwaitTabbedContent
#3498TabbedContent.clear_pane
now returns anAwaitComplete
instead of anAwaitTabbedContent
#3498Tabs.add_tab
now returns anAwaitComplete
instead of anAwaitMount
#3498DirectoryTree.reload
now returns anAwaitComplete
, which may be awaited to ensure the node has finished being processed by the internal queue #3498Tabs.remove_tab
now returns anAwaitComplete
, which may be awaited to ensure the tab is unmounted and internal state is updated #3498App.switch_mode
now returns anAwaitMount
, which may be awaited to ensure the screen is mounted #3498- Buttons will now display multiple lines, and have auto height #3539
- DataTable now has a max-height of 100vh rather than 100%, which doesn't work with auto
- Breaking change: empty rules now result in an error #3566
- Improved startup time by caching CSS parsing #3575
- Workers are now created/run in a thread-safe way #3586