* Serialize tracked realloc and free bookkeeping to prevent cross-thread
address reuse from corrupting the memory tracker during tab teardown.
* Add concurrent allocation and terminal close/resize regression coverage.
* Install a macOS-only File, Edit, and Window menu that mirrors eterm
keybindings without binding Cmd+W.
* Keep the native menu outside the splitter layout and document the canonical
macOS build workflow.
- Add the eproc process-monitoring application and persistent window/table state
- Implement Linux process, network, GPU, icon, and GUI-window collection
- Add optional process columns, styling, i18n-ready strings, and command copying
- Retain exited processes for one update and color them as ended
- Extend table sizing and header behavior for persisted column layouts
- Organize Linux-specific sources under platform/linux
- Keep unsupported platforms buildable with a startup WIP warning
- let UIApplication create, manage, render, and destroy multiple native windows
- add scoped scene and GL window-context switching
- route input events to the scene belonging to each native window
- share application fonts, themes, icons, styles, and graphics resources safely
- add NewInApplicationWindow factories for UIWindow, UIFileDialog, and UIMessageBox
- support native parent relationships, modality, minimum sizes, and optional positioning
- close child windows when the primary application window closes
- defer native context destruction until the end of the application tick
- fall back to in-scene windows for Emscripten and terminal rendering
- reapply renderer state caches when switching OpenGL contexts
- fix SDL2/SDL3 display bounds and multi-window lifecycle handling
- add a native file-dialog and message-box multi-window example
- add integration coverage for context switching, input, resources, modality, and closing
Introduce observable and computed values, typed widget bindings, validation groups, UI properties, commands, and UI-thread delivery.
Add observable vector and list model support for incrementally updated collections, with filtering and source-row mapping.
Modernize the Flight Booker and CRUD examples and add focused data handling and collection examples demonstrating the new APIs.
Organize the UI binding headers under ui/databinding, expand test coverage for notification and lifetime semantics, and document API selection, validation, ownership, threading, and performance behavior.
- 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
Add CSS box-sizing support for HTML widgets and route CSS-specified
width/height conversion through virtual sizing hooks. Resolve percentage
CSS sizes against the containing block content box, and apply content-box
or border-box conversion consistently across block, flex, grid, table,
and rich text layout paths.
Keep table wrapper width behavior compatible with CSS table layout by
overriding the table width conversion separately, so padded percentage
tables do not overflow their assigned wrapper width.
Add focused regressions for block padding, flex-basis sizing, grid
containers, table containers, and the border rendering cases that depend
on explicit border-box sizing.
UIMarkdownView now uses the HTMLFormatter::HTMLtoXML.
Removed formatting hack to force strict XML from HTML, now we should always use HTMLFormatter::HTMLtoXML.
Redesigned UIDropDownList to inherit from UIDropDown which is a base class to handle different types of drop-downs. Added UIDropDownModelList which is the same as UIDropDownList but uses a UIListView by default so it's a model/view based DropDown.
Fix crash when changing states of the buttons in the build panel.
Increased the default animations speed.
Refactor of some examples, added a new hello world example but using UIApplication.
ecode: Fixed how it filters the `sbt`, `srt` and `sb` universal locator switches.
Revisiting some old code, the Map Editor, many things are not properly layouted, I might fix it later, for the moment a few minor fixes.
Fix build output and app output highlighting.
Fix isStopSelChar used in UITextInput for text selection (double click).
Minor fixes in C and C++ grammars.
Debugger: Expressions are now evaluated as soon as they are added if debugger is running but paused.
Fix a newly introduced bug that incorrectly calculated string widths when string contained new lines.
Added `Primitives::drawSoftShadow` to draw simple shadows with primitives. Improved the shadow rendering adding correct rounded borders. UIWindow::drawShadow now uses this function.
Fixed a bug not displaying a recently create window when default transitions are enabled.
Plus some minor fixes.
Fix a use-after-free bug in Font::getGlyph and FontTrueType::getGlyphIndex.
Some extra checks to avoid crash reported in SpartanJ/ecode#650.
Some minor improvement in auto-close brackets logic.
Added clone document buffer (SpartanJ/ecode#632).
Fix bug introduced in the last commit for UIDataBind initialization.
Change gmake2 in favor of gmake when using premake5 since it has been depreated in premake5-beta6 (hopefully I did not miss anything).