- add reusable-buffer String::toUtf8() conversion
- extract shared find-bar CSS into UIFindBarStyle
- reuse the shared style from UIDocFindReplace
ecode:
- enable terminal find, next, and previous shortcuts
- install terminal bindings after conflicting editor bindings are removed
eterm:
- add searchable terminal history with plain text, RegEx, and LuaPattern modes
- support case-sensitive and whole-word matching across wrapped rows
- debounce searches and avoid unnecessary string allocations
- add an animated find bar with status and wrapped result navigation
- expose find commands through configurable keybindings and the context menu
- render and navigate search matches in terminal history
- forward right-button releases when applications capture the mouse
- fix UITabWidgetSplitter ownership during shutdown
tests:
- cover UTF-8 buffer reuse and terminal search behavior
- verify wrapped lines, Unicode, pattern modes, invalid expressions, and navigation
- verify SGR right-button release encoding
tooling:
- clarify the mandatory optimized build workflow for performance work
- require direct release test execution before falling back to Xvfb
Build:
- Link eterm with CoreFoundation and CoreServices on macOS
- Satisfy the framework dependencies required by efsw's FSEvents backend
Applications:
- Move eterm settings operations into a dedicated SettingsActions class
- Centralize settings window lifecycle and font configuration actions
- Route settings panel font-size updates through SettingsActions
- persist keybindings in keybindings.cfg with configurable primary and secondary modifiers
- hot-reload bindings and merge newly introduced defaults
- open keybindings.cfg in a terminal-font-sized code editor tab
- indicate unsaved keybinding changes using the modified-tab marker
- share tab and split commands between terminals and the keybindings editor
- add bindings for terminal actions, tab navigation, numbered tabs, splits, renaming, and tab movement
- expose keybindings through terminal and tab context menus
- add tab split and move-left/right context menu actions
- load preferences and window state from their configuration files
- persist CLI overrides after applying them
- capture window state before closing the native window
- restore window position and defer maximization until initialization completes
- avoid applying pixel density twice when restoring window dimensions
- display active keybindings in terminal and tab context menus
- add the New Terminal context-menu action
- add the generic settings model and panel to EE::UI::Tools
- support category navigation, filtering, and lazy materialization
- add UISettingsPanel model and filtering tests
ecode: migrate settings to UISettingsPanel
- replace the application-specific settings model
- use the generic settings panel implementation
- add monitor refresh rate as a frame limit option
- normalize UI labels and translations
eterm: add persistent configuration and settings panel
- persist application preferences and window state
- use saved values as defaults for command-line options
- persist command-line overrides
- add graphical settings with live application
- expose renderer, terminal behavior, appearance, font, and scale options
- add ellipsized tabs and ecode-style context actions to eterm
- support session rename, exclusive mode, tab movement, and maximize/restore
- restore maximized tab widgets before close or split operations
- track detached tab state directly to prevent stale references in ecode
- keep dirty rows valid during asynchronous terminal resize
- expose eterm's widget inspector and disable default UI effects
- localize the new exclusive-mode action
Initialize SystemFontResolver when enabled and make its lifecycle and font-list
population thread-safe.
Use native codepoint fallback matching through Fontconfig on Linux, BSD, and
Haiku, DirectWrite on Windows, and Core Text on macOS and iOS. Preserve the
cached FreeType scan as a fallback when native matching is unavailable.
Enable system fonts by default for UIApplication and warm the font database in
the background. Allow applications to override the policy and disable the
automatic default in the unit-test runner.
Fix glyph fallback checks to respect the resolver's enabled state and add
coverage for concurrent warm-up and shaped symbol fallback.
Update efsw.
eeiv: Add drag & drop of images and folders. Added small welcome screen.
eterm: Detect windows below the default width and height and resize the window to fix the screen.
- 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
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).
UIStackLayout added wrap_content support for layout_width.
All Layouts: added max-width support.
UIListBox: Allow adding empty items.
UICodeEditor: Added resetSyntaxDefinition.
ecode:
Added "Folder/Project Settings" menu. Added/made visible "Treat .h files as C++ code" option.
Added project build preset output parsers, added "generic" output parser as default preset.
Added enabled state for build steps.
Hide status bar when ecode is opened in terminal mode.
eterm:
Force rendering even if buffer is still incomplete.
CheckBox and RadioButton now display hover effect.
Added alias "lg" for layout-gravity.
Node: Added addMouseClickListener and hasChild helper functions.
UICodeEditor: Fixed a minor bug that provoked to scroll the view when resizing the widget.
UITabWidget: minor bug fix.
ecode: Fixed a bug that caused to save a monospace font when the user did not accept to change it.
Added debug options to the widget inspector.
Added i18n to all strings defined in XML files/strings.
Added "Rename Session" button in the Terminal menu.
UI::Window: Window::setWinFlags is now Window::setWindowsFlags.
Renderer: Added glVersionFromString, graphicsLibraryVersionToString, getDefaultGraphicsLibraryVersion, getAvailableGraphicsLibraryVersions.
Defined Sizeu.
Context and Window ini configurations are now lowercase.
Display: Added getRefreshRate and getSize.
UICodeEditor: hide color preview when mouse leaves the editor.
ecode:
Added Renderer options (vsync, msaa, max frame rate, renderer version).
Added "bechmark-mode" option, to measure rendering performance.
Vector2: Added round, roundUp, roundDown.
KeyEvent: Now sends also the scancode.
GlyphDrawable force glyph offset to be an integer value.
TerminalDisplay: Allow emoji fonts. Fixed minor bugs. Added events callback.
TerminalEmulator: Added clearHistory.
eterm: Implemented title updates.