- add user and project settings windows with searchable tree navigation
- centralize setting definitions with reusable bool, choice, text, numeric, and action controls
- apply supported configuration changes reactively
- add inline validation and editable choices for complex value types
- disable project document options while inheriting global settings
- migrate font, theme, language, renderer, screenshot, and terminal settings
- improve keyboard navigation and modal shortcut isolation
- make configuration dialogs modal
- persist settings when the panel closes
- add responsive dark and light theme styling
- update translations for new settings labels and descriptions
- add regression coverage for modal keybinding propagation
Map the standard CSS pointer value to the hand cursor and retain the
computed cursor in each UIWidget instead of mutating the scene during
style application.
Apply the retained cursor when a widget becomes the hover target, restore
the arrow when leaving the UI, and make cursor inheritance available to
descendants such as inline SVG elements.
Store cursor state in an existing UIWidget padding gap and centralize
cursor serialization in Cursor::toName().
Add regressions for pointer parsing, cursor serialization, inheritance,
and the SS64 search button SVG.
Propagate descendant float exclusions through non-BFC HTML containers so
floats participate in their nearest block formatting context.
Finalize line geometry before translating propagated exclusions, track
finalized lines incrementally, and search successive float bands when a
fixed-width inline-block does not fit beside active floats.
Recognize inline-block elements as block formatting contexts while
preserving their fixed width. Reuse persistent float-exclusion storage
across relayouts to avoid repeated allocations.
Add SS64 regressions covering narrow viewports, HiDPI rendering, stacked
floats, anchor sizing, SVG sizing, and footer overlap.
Fixed `cursor: pointer`, `pointer` was not registered.
- replace FontManager with per-ResourceScope FontService instances
- publish font factories into explicit or default resource scopes
- import default resources into UI scene scopes unless explicitly disabled
- keep related font faces strongly owned without hot-path weak_ptr locking
- add cached glyph advance queries without creating texture pages
- fix font picker preview ownership, cleanup, and rapid switching
- selectively evict TextLayout cache entries when referenced fonts unload
- document FontService, ResourceCatalog, and cache invalidation semantics
- migrate examples, tools, benchmarks, and tests to the scoped font API
- expand coverage for font ownership, texture release, and layout caching
- replace TextureAtlasManager and GlobalTextureAtlas with catalog-backed atlas ownership
- make TextureAtlas and TextureRegion creation return explicit resource handles
- let atlases retain their textures and regions through shared ownership
- add atlas publication, lookup, removal, and enumeration to ResourceCatalog and ResourceScope
- make TextureAtlasLoader publish atlases and regions into an explicit resource scope
- move theme atlas ownership into each theme resource catalog
- migrate maps, editors, examples, and tests away from the global atlas manager
- add scope-aware Sprite pattern-loading overloads while preserving default-scope compatibility
- fix re-entrant style-state invalidation when applying styles creates new widgets
- add atlas ownership, scoped Sprite lookup, and style-state regression coverage
- update the resource ownership plan and texture atlas editor launch configuration
/** Enables or disables focus highlighting in this scene and embedded UI scenes. */
void setHighlightFocusRecursive( bool highlight );
/** Enables or disables box debug drawing in this scene and embedded UI scenes. */
void setDrawBoxesRecursive( bool draw );
/** Enables or disables debug-data drawing in this scene and embedded UI scenes. */
void setDrawDebugDataRecursive( bool debug );
Added control over the UISceneNode children and added setHighlightOverRecursive. This allows us to inspect nested UISceneNodes.
Fix hit-box bug when changing display.