0.2.1 — event and shortcut correctness
Fixed
-
Typing a lowercase
bno longer collapses anAppShellsidebar. The sidebar toggle is documented as Ctrl+B (Cmd+B on macOS), but off macOS it also fired on a barebtyped into any field — including aTextField,PasswordField,TextAreaorCodeEditor— on a machine with NumLock switched on. Windows reports NumLock using the same modifier bit that the shortcut's macOS half was registered under, so an unmodified keystroke matched it. The macOS shortcut is now registered only on macOS. An uppercaseBwas never affected, which is what made the behavior look intermittent. (#403) -
A
Command+orOption+shortcut now binds the key its own menu label promises. Off macOS these were the last two modifier names left unmapped, soShortcut(pattern="Command+S")produced an accelerator reading Ctrl+S beside a binding that listened for something else entirely — and on Windows that something else was satisfied by NumLock, so the shortcut fired on an unmodifieds.Option+Khad the same shape. Both now resolve to Ctrl and Alt off macOS, matching what has always been displayed, and keep their own meanings on macOS. This is the same trap as #403, closed once at the shared modifier map rather than at another call site. (#405) -
emit()now reaches the handlers registered with the matchingon_*(). On the field widgets —TextField,PasswordField,PathField,NumberField,SpinnerField,DateField,TimeField,Select,TextArea,CodeEditor— the text-editing events belong to the entry inside the field, and registering a handler correctly listened there whileemit()fired on the field's outer frame. Sofield.emit("change", data=...)never reachedfield.on_change(...), contradictingemit()'s own documentation that the two take the same event name. Both now resolve the target through one shared seam, so they cannot disagree.emit()is documented more plainly at the same time: it announces the framework's own events, and the names that stand for a real input event instead —click,focus,blur,submit— are not a way to notify listeners. (#396) -
A window's transparency setup no longer keeps re-running. On X11, alpha is applied once the window becomes visible and the binding that does it is meant to remove itself afterward. It was removing nothing, so it re-applied on every later visibility change. (#398)
-
A cancellation that fails no longer reports success.
Subscription.cancelledbecameTrueeven when the underlying removal raised, so a subscription that was still delivering events described itself as cancelled. Relatedly, an internal removal that failed partway could leave a handler bound while reporting that it had been removed, or strand the resources behind one that had. (#400) -
An unbind that matches nothing is now reported under
BOOTSTACK_DEBUG. Declining to release resources it cannot prove are unused is the safe behavior, but it was silent, so the drift that caused it was invisible. (#399)
What's Changed
- fix(shell): require a modifier for the sidebar toggle shortcut (#403) by @israel-dryer in #404
- test(shell): make the #403 regression tests actually run and assert by @israel-dryer in #406
- fix(events): the #392-review cluster — six event-cleanup follow-ups by @israel-dryer in #410
- fix(shortcuts): Command+ and Option+ bind what their labels promise (#405) by @israel-dryer in #411
Full Changelog: v0.2.0...v0.2.1