Skip to content

Scriptoscope 0.9.0

Latest

Choose a tag to compare

@khawkins98 khawkins98 released this 03 Nov 13:43
· 21 commits to main since this release
bf93341

Scriptoscope 0.9.0 is a minor release on 0.8.0. It adds scheme authoring and moves window input closer to the classic Window Manager. It continues 0.y.z pre-launch development (#168). GitHub release only; no npm publication.

Behaviour change: clicks pass through transparent frame pixels (#597)

  • Managed windows now default to region hit mode, as in Kaleidoscope 2.3.1. A press between a scheme's merlons, ornaments or studs reaches the page behind, with its default actions.
  • A press on page content deactivates the active window, as a click on the desktop did on the classic Mac.
  • To keep the old behaviour, set data-scriptoscope-hit="box" on a window, { hit: 'box' } on WindowManager.add, or new WindowManager({ hit: 'box' }) for the whole page. Windows inside openModal keep the box automatically.
  • parseWindowAttrs no longer defaults state to 'active' when data-scriptoscope-state isn't declared (#614).

New: scheme authoring (#540)

  • tools/theme-author/ writes new Kaleidoscope schemes from code as real resource forks that load in Scriptoscope and in the original Kaleidoscope 2.3.1.
  • Workflow tools: npm run author, paint-over, sim8 and capture:authoring, plus a dev-only preview page.
  • The Scriptoscope Reference Native Theme in authoring/schemes/, and guides starting at docs/authoring-a-scheme.md.

Changed: window input

  • A first press on an inactive window's title widget or grow box only activates it (#614).
  • Region windows use native hit targets, so wheel and pointer input reach native content, nested scrollers and the page (#631, #635).
  • New WindowManager.dispose() (#621) and hit / hitEffective reporting on WindowManager.describe.
  • Window and control rendering allocates less (#643).

Fixed

  • Collapsed windows draw only their title-axis sides, as Kaleidoscope does (#617).
  • Window titles fit their slot using the complete title's ink, so substitute-font descenders and cedillas aren't clipped (#637, #624).
  • Utility windows use their alternate pressed-widget art, and popup windows ignore collapse (#624, #625).
  • A single scroll bar reaches the content edge when the scheme has no grow-box art (#640).
  • Movable-modal, movable-alert, popup and collapsed titled-utility windows show their title text again (#540).
  • Focus, Tab order, Shift+wheel and gesture fixes (#619, #621, #628).

Known limitation

  • On Linux WebKit (WebKitGTK), title fitting and title painting can differ by one colour step or a faint edge pixel, because WebKitGTK picks its canvas backend by canvas size. This isn't visible. The affected checks are expected failures on Linux WebKit only; the fix is tracked in #646.

Contributor workflow

  • npm run check:schemes is part of npm run gates, and npm run bench:render measures render allocations.
  • The release gate caught three regressions that had landed without running the WebKit and Firefox jobs. They were fixed before tagging (#645, #647).

The final release gate passed on the exact tagged commit, and the tag check confirmed it.

Runtime size versus 0.8.0 (npm run loc:src -- HEAD --base v0.8.0):

non-test source 0.8.0 0.9.0 delta
logic 16654 17661 +1007
cited engine tables 2380 2380 0
total 19034 20041 +1007

Full details are in the CHANGELOG.