Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

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

Fix compact density, remove redundant footer, move header above split

Details

Three issues fixed:

1. Compact vs Balanced were identical — compact now hides the metadata

row (status, due date, subtasks) and tags, showing only priority dot

+ title for maximum density.

2. Removed the bottom footer bar (Total/Active/Done) which duplicated

the stats already shown in the header.

3. Moved the stats + New Task + Prioritize header out of the left pane

and above the split layout so it spans the full width. Adds a subtle

bottom border to visually separate it from the split content.

patch Tasks

Fix runtime type resolution crash in density bindings

Details

Replace compiled binding cast syntax ((vm:TasksViewModel)DataContext)

with reflection binding fallback $parent[UserControl].DataContext inside

DataTemplate — the cast syntax can't resolve plugin types at runtime

within a template context.

minor Tasks

Add View Settings tab with item density modes to Tasks plugin

Tasks 1.27.0 → 1.28.0 | 8dcf1085
Details

Move Flat/GTD/Calendar grouping selector from inline sub-mode toggle

into a new "View" tab in Tasks Settings. Add "List Item Density" setting

with Full/Balanced/Compact modes that control item card visual density:

  • Full: status color bar, priority label, timer button, tags
  • Balanced (default): priority dot, title, metadata, tags
  • Compact: priority dot, title, metadata only

Remove drag handle from all densities (press-and-hold drag still works).

Both ListSubMode and ListItemDensity persist across restarts via

IPluginSettings. StatusMessage moved into the header row to reclaim

vertical space formerly used by the sub-mode toggle row.

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 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.

← Prev Page 20 of 127 Next →

Get notified about new releases