Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 43 of 266 Next →
February 27, 2026
patch Tasks

Fix task list items expanding beyond left pane width

Details

Root cause: the ListBox in flat sub-mode was wrapped in a redundant

outer ScrollViewer that offered infinite horizontal width during

measure, bypassing the pixel-constrained Grid column width. Since

ListBox already has its own internal ScrollViewer for vertical

scrolling, the outer one was unnecessary and broke width constraint

propagation.

  • Remove redundant outer ScrollViewer around flat sub-mode ListBox,

move IsVisible binding to ListBox directly

  • Add HorizontalScrollBarVisibility="Disabled" to GTD and Calendar

sub-mode ScrollViewers (these use ItemsControl which has no built-in

scroll, so the outer ScrollViewer is needed but must not offer

unconstrained horizontal space)

patch Desktop Shell

Enable Avalonia DevTools in debug builds (F12)

Details

Calls mainWindow.AttachDevTools() in #if DEBUG so the built-in

element inspector, visual tree viewer, and layout visualizer are

available via F12 during development.

patch Tasks

Revert to inline Grid split with pixel-based ColumnDefinitions

Details

The SplitPaneLayout custom Control wasn't constraining content width

properly — items expanded beyond pane bounds regardless of Clip,

ClipToBounds, or measure constraints.

Replaced with a standard Grid where ColumnDefinitions start as star

(*) sizing for initial layout, then get switched to pixel-based

GridLength values in OnLoaded + SizeChanged. Pixel-based columns

give the Grid's layout engine an exact width budget for each column,

and content is properly constrained. ClipToBounds on each pane

handles any remaining overflow.

The resize handle, drag interaction, and ratio persistence all work

through the ColumnDefinition.Width property — no FindControl for

child panels needed.

patch UI Components

SplitPaneLayout: force clip geometry on panes in ArrangeOverride

Details

When a child's DesiredSize exceeds the arranged rect, ArrangeCore

may let the child render at its desired width, overflowing into the

adjacent pane. ClipToBounds on the parent Control doesn't reliably

clip in this scenario. Now explicitly sets Clip = RectangleGeometry

on each pane after arrange, guaranteeing content stays within its

allocated region.

patch UI Components

Rewrite SplitPaneLayout as direct Control with own layout

Details

The Border→SplitPanel→Border-host chain wasn't properly constraining

child content width. Rewrote as a Control subclass that directly

manages Pane1, Pane2, and the resize handle as visual/logical

children, with MeasureOverride and ArrangeOverride that measure each

child with its exact proportional width constraint and arrange at

exact rects. No intermediate containers to lose constraints.

← Prev Page 43 of 266 Next →

Get notified about new releases