v0.6.0
[0.6.0] - 2026-04-02
Breaking changes
-
Unified pointer events. Canvas-specific (
canvas_press,
canvas_release,canvas_move,canvas_scroll) and mouse area
specific (mouse_right_press,mouse_middle_press,mouse_move,
mouse_scroll,mouse_enter,mouse_exit,mouse_double_click)
event families replaced with unified device-agnostic families:
press,release,move,scroll,enter,exit,
double_click. All carrypointertype,modifiersstate, and
optionalfingerID for touch. -
Canvas element events unified.
canvas_element_enter/leave/
focused/blurred/drag/drag_end/key_press/key_release
replaced with standard families (enter,exit,focused,
blurred,drag,drag_end,key_press,key_release) using
scoped IDs ("{canvas_id}/{element_id}"). -
mouse_areawidget renamed topointer_areaon the wire. -
Scrollable viewport event renamed from
scrolltoscrolled
on the wire.scrollis now the pointer wheel event. -
sensor_resizeevent renamed toresize. -
:start/:endalignment aliases removed. Use:left/:right/
:top/:bottom/:center. Unknown alignment values log a warning. -
Subscription wire types renamed.
on_mouse_move/button/
scrollandon_touchrenamed toon_pointer_move/button/
scroll/touch.
Added
-
Device awareness on pointer events. Every pointer event includes
pointerfield ("mouse","touch","pen"), keyboardmodifiers
state ({shift, ctrl, alt, logo, command}), andfingerID for
touch events. -
Canvas touch support. Canvas now handles
FingerPressed,
FingerMoved, andFingerLiftedevents with full hit testing, drag,
and click detection. Touch events are emitted withpointer: "touch"
and the finger ID. -
Modifier state tracking. Renderer tracks current keyboard
modifier state and includes it on all outgoing pointer events. -
Mock mode canvas element click.
click("#canvas-id/element-id")
works in mock mode by detecting scoped IDs, finding the canvas,
verifying the element exists, and emitting a click event. -
Renderer-side animation system. Transitions, springs, and
sequences with animatable props across display, layout, and input
widgets. -
Per-window scale_factor support.
-
Window-scoped subscriptions. Subscription events include
window_idfor multi-window disambiguation. -
Widget-targeted scroll commands for specific scrollable widgets.
-
Effect stubs for testing (register/unregister via wire protocol).
-
Canvas element key events.
key_press/key_releaseon focused
elements whenarrow_modeis"none". -
Canvas scoped IDs for all element events.
-
Radio group accessibility role for canvas elements.
Fixed
-
Mock mode modifier keys. Click/toggle actions in mock mode now
extract modifiers from the interact payload instead of hardcoding
empty modifiers. -
Mock mode sequential clicks. Replaced the fragile focus+space
approach with direct synthetic event emission. Sequential clicks on
different widgets now work reliably. -
Broken pipe handling. Ignore broken pipes during hello handshake.
Changed
- Upgraded to plushie-iced 0.8.1 (mouse_area cursor position callbacks).
- Renamed
plushie_idtowindow_idthroughout renderer codebase. - Generic renderer pipeline with null renderer for mock mode.
- Extracted shared startup sequence into startup module.
Full Changelog: v0.5.1...v0.6.0