Release v2026.6.9
Therion Studio 2026.6.9
This release combines the unpublished 2026.6.8 release notes with the 2026.6.9 stabilization work. It focuses on map-editor drawing, selection reliability, source-edit responsiveness, background handling, validation fixes, and packaging/runtime polish.
Special thanks to Martin Sluka, @CaverBruce, Axel Hack, @apgeo, Stacho Mudrák, Martin Budaj, @vpicaver, and everyone else who tested the application, reported bugs, and shared valuable feedback.
New Features
- Added SVG background support in the map editor alongside raster and XVI backgrounds, with placement, layer controls, and mixed-background workflows in one
.th2file. - Added a persisted
Auto-collapse/expand Scrapstoggle to the map Objects inspector for users who prefer the inspector to keep only the selected object's scrap expanded. - Added recent pending point, line, and area type/subtype choices as quick drawing defaults while the map editor stays open.
- Added automatic pending
point stationname advancement for repeated station-point drawing. - Added single-key map drawing shortcuts for point/line/area tools, selected line reverse/close, and selected or next line-point smooth/control-handle toggles.
- Added
Ctrl+ left-drag canvas panning in the map editor while keeping Space-drag and right-drag panning. - Added validator automatic fixes for unclosed map blocks and empty line/scrap blocks, including navigation refresh after applying a fix.
- Added opt-in diagnostic Qt/QML and map-input logging with
THERION_STUDIO_ENABLE_LOG=1and optionalTHERION_STUDIO_LOG_FILEoverride.
Improvements
- Improved map-editor freehand line drawing responsiveness by sampling every accepted pointer position while throttling expensive preview redraws to roughly one frame.
- Reduced pointer-release stalls after drawing by applying interactive draft source insertions immediately and deferring map-scene projection refresh work out of pointer events.
- Reduced freehand source insertion cost by applying delta text edits instead of full snapshot replacement where practical.
- Bounded map-editor undo history to the most recent 200 source-edit steps per map tab so long editing sessions do not accumulate unbounded full-source snapshots.
- Improved tablet/stylus input handling in the map editor viewport, including narrower duplicate synthetic mouse press suppression that no longer blocks active mouse move or release completion paths.
- Preserved more freehand line detail during freehand drawing.
- Narrowed map path hit-testing so clicks in visibly empty map space no longer select oversized path, line, decoration, or connector scene shapes; vertex and control-handle affordances remain larger for direct manipulation.
- Reduced path-selection latency in large map scenes by evaluating distance-ranked path candidates only near the click point instead of scanning the whole scene.
- Made high-zoom line/area drafting hit targets viewport-pixel based so small objects can still add anchors without accidentally grabbing draft controls or closing near the first anchor.
- Preserved manually collapsed scraps in the map Objects inspector across refreshes and text navigation, while still expanding the containing scrap when a map object inside it is selected.
- Kept inactive
.thandthconfigtabs from driving map-object cursor synchronization, so validator/sidebar refresh work no longer steals map editor interaction state. - Kept committed line or area drafts selected when
Escfinishes drawing, and moved the Raw editor cursor to the inserted object. - Kept map tabs loaded while hidden refreshing once when first shown so handles and drag affordances are attached to the visible viewport state.
- Kept Selection inspector terminology and object option grouping clearer by reserving Line Point for vertex workflows and using Options for object-level settings.
- Improved Therion executable auto-detection.
- Improved Windows backslash path handling for Therion
inputpath validation and completion workflows. - Extended map-input diagnostics with hit-test, pointer-event, source-transaction, undo-stack, and snapshot-size details for Windows input investigations.
- Stabilized 3D viewer keyboard rotation and tilt shortcuts, including top/side view behavior, and made left/right rotation use a 5 degree step.
- Kept 3D viewer compass orientation stable when switching between top and side views.
- Reduced
line overhangjaw decoration size so the teeth are less visually dominant. - Made the Compiler panel show the selected target config file name prominently with the full path as secondary context.
- Made each new compiler run clear the previous output and start the new output with the resolved command and working directory.
Bug Fixes
- Fixed map-editor drawing inside unclosed scraps, line blocks, or area blocks by surfacing validation problems instead of letting editing enter an inconsistent state.
- Fixed loaded raster/XVI background layers so viewport-only actions no longer refresh the background layer model, preventing Objects inspector blinking and avoiding interruption of line vertex/control-handle interaction.
- Fixed raster/XVI background placement controls so pivot coordinates are interpreted in background/layer coordinates instead of canvas coordinates.
- Fixed raster background position edits so inspector spin boxes refresh immediately and X/Y stepping stays monotonic.
- Fixed map line/area vertex and Bezier control-handle selection/dragging when
.thorthconfigtabs are open beside a.th2map, including projects created from the default template. - Fixed map viewport fallthrough mouse presses so vertex and Bezier control-handle drags can be handled reliably by scene items.
- Fixed area-fill selection near referenced border lines after narrowing path hit-testing.
- Fixed hidden line control handles stealing clicks from visible nearby paths.
- Fixed direct map vertex/control-handle presses so pending line/vertex metadata is preserved for selection refresh.
- Fixed map line-point orientation/size handles so they remain draggable when overlapping highlighted paths.
- Fixed smooth Bezier line edits so moving a vertex and then dragging one control handle keeps the opposite handle tangent.
- Fixed Bezier draft serialization so duplicate consecutive anchors are compacted and missing opposite smooth handles are mirrored when possible, reducing intermittent segmented-line creation after a single Bezier draw gesture.
- Fixed
line slopeorientation/size controls so the Selection inspector checkbox is re-enabled for selected slope vertices
and arrow-handle hit areas target the arrow head without stealing endpoint vertex drags. - Fixed map preview rendering for line-point subtype changes inside one line, such as
line wallsegments switching to
subtype invisibleorsubtype bedrock. - Fixed draft completion and draft auto-commit so they do not recenter the map viewport or force-scroll the Objects tree to the newly inserted object.
- Fixed raw editor path completion so accepting a path suggestion replaces the current path token instead of inserting the suggestion before it.
- Fixed
Escsupport for closing the find/replace panel from either the panel or editor focus. - Fixed Block editor canvas selection refresh and command reordering so simple command inspectors no longer blink and drag/drop operations complete reliably.
- Fixed Selection inspector point-geometry ordering,
-clip off, narrow-width layout regressions, quick-field visibility refresh, and selected line type/subtype preservation. - Fixed point
-alignrendering so map canvas placement matches saved point options. - Fixed 3D viewer
Eschandling so measure mode exits before and after selecting the first measurement point. - Fixed project close so stale validation results, diagnostics, details, and the validation activity indicator are cleared.
- Fixed Therion compiler runs that stop after an error prompt such as
Press ENTER to Exit!by closing the runner stdin after launch so the process can finish without pressingStop. - Fixed Windows installer Qt Quick deployment so the 3D viewer inspector QML imports are installed at the runtime
qml/root used by Qt. - Fixed Linux AppImage runtime staging for Qt/QML dependencies and dynamically loaded backend modules used by runtime libraries such as libproxy.