You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release v1.8.0
FEATURES
- In a browser: any crymble-ui app builds, unchanged, as a static web page - the same Crystal compiled to
WebAssembly, drawing on an HTML canvas through a second backend that paints the desktop's pixels. No line of the
app changes, nothing is compiled conditionally. bin/crymble-web, installed into your app's bin/ by
`shards install`: `setup` (the toolchain, once; Linux x86_64), `build [TARGET|FILE.cr] [--release] [--local]`,
`serve`. The result is a folder of static files; the app runs only in the visitor's tab. docs/WEB.md.
- WindowRenderer: the platform-neutral half of the window renderer. A host drives its loop with `start` + `tick`
(the browser does); SFMLRenderer#run is unchanged.
- CrymbleUI.backend_notices: the lines an app's About should show for the backend it was built with (SFML on the
desktop, the canvas in a browser) and the embedded font.
- fitted { }: a container that scales its content uniformly to the space it is given; text is rasterised at its
final size and a click lands where it is drawn. Tutorial 30.
- F6 / Shift+F6 walk the parts of the keyboard's panel - the way out of a grid, which keeps Tab for its cursor.
- window_panel(home_focus: "id"): where the keyboard lands in a panel with no memory of one.
- A shortcut can name the period and comma keys (Ctrl+., Ctrl+Comma).
- A window answers its panel area before its first layout; a build can ask for the window it is building
(current_window).
- Testing::Driver acts as a press does (focus on click, then the raise); press_title, close_panel; type(text) goes
to whatever holds the keyboard.
CHANGES (see docs/MIGRATION.md)
- The panel in front holds the keyboard, and Tab stays inside it: a raise (a press, Ctrl+Tab, a panel opened or
reopened, the panel open at launch) hands the panel the keyboard; panel shortcuts follow the keyboard's panel;
Enter and Space press a focused button, checkbox, tab or section header first.
- A panel the user never moved lies inside its window on both axes. WindowPanel#user_moved is now user_moved_x,
beside user_moved_y.
- Only a widget that paints the focus flash is flashed (Button, Checkbox; Widget#paints_focus_flash?): a focused
grid, text input, combo box, tab or section header no longer redraws every 300 ms for nothing.
BUGFIXES
- A rebuild that changed nothing re-rendered the whole panel holding the keyboard; it re-renders nothing now.
- A panel changed while covered could show stale content once revealed.
- A menu's background did not cover its whole widget.
NOTES
- Windows: the whole spec suite and the examples type-check for Windows; runtime behaviour on Windows is verified
by CI on this release.
- The web flavour is tested in headless Chromium (pixel conformance against the desktop, browser smoke tests);
Firefox and Safari not yet by hand.