Skip to content

libultrahand 2.5.2

Latest

Choose a tag to compare

@ppkantorski ppkantorski released this 10 Jul 09:01
0a8eeaa

List of Changes

  1. TableDrawer now supports a per-table custom background color and an optional border toggle.
    • New constructor parameters (_drawTableBorder, _hasCustomBGColor, _customBGColor) back the new ;bg_color= and ;border= package table directives.
    • Only the RGB channels of a custom background are used — the alpha channel is always taken live from the theme's table background color at draw time, so opacity/fade settings and theme switches still apply normally.
  2. New setBaseTextColor() / setBaseValueColor() (+ matching clear*) methods on ListItem.
    • Establishes an item's theme-driven "default" color (e.g. overlayTextColor, packageVersionTextColor) without hard-overriding the Selection Text/Value theme colors on focus.
    • Distinct from setTextColor()/setValueColor(), which are for explicit per-item overrides (e.g. ;text_color=/;footer_color=) and always win regardless of focus state.
    • Side-note: this is what let the overlay/package list title and version colors move off the "always wins" custom-color path without losing their focus/highlight behavior.
  3. Value/footer text color priority reworked in determineValueTextColor().
    • Transient run-state feedback (spinner / checkmark / crossmark / in-progress) still always takes priority over any custom or theme color.
    • A custom value color now correctly overrides "Selection Value" highlighting and faint/dimmed states instead of being silently skipped.
  4. Switch2Wheel first-frame seeding fix.
    • A wheel slot is now seeded directly into whatever palette (default/alt) it actually starts in on its first buildSwitch2Wheel() call, instead of always assuming "default" and treating an already-alt starting state as a flip.
    • Fixes a visible cross-fade-in on elements that are already in their alt state the moment they're first drawn (e.g. a trackbar that's locked from the moment the page opens).
  5. Trackbar / step-trackbar touch handling now accounts for layerEdge.
    • Touch bounds and handle-position math for TrackBar and StepTrackBarV2 didn't include the windowed-mode layer's X offset, so dragging a trackbar handle in windowed mode could read the wrong position or fall outside the detected bounds.
  6. Custom page-left/page-right footer names are now individually resolved against the translation cache before being composed into the footer line.
    • Previously the composed footer string (icon + gap + name) was built first, so a translated page name could never match a whole-string cache entry.
  7. Input lockout while a command is running (launcher builds).
    • D-pad directions and A now bounce the current highlight (with wall feedback) instead of doing nothing or misfiring a click, making it visually clear that input isn't being accepted yet.
  8. Wiring for the new useInPackageTitles flag.
    • getPackageColor() now returns the theme's default package color whenever useInPackageTitles is off, overriding whatever color the package requested via its header (e.g. ;color=). When on (default), package-requested colors are respected as before.
  9. Default theme palette refresh.
    • Updated defaults for click_color, dynamic_logo_color_1, dynamic_logo_color_2, logo_color_2, and table_bg_color.
    • Dynamic Logo (dynamic_logo) now defaults to off instead of on.
    • Dynamic "Ultra" logo scroll cycle slowed from 1.6s to 2.0s.
  10. Changes to download_funcs.cpp.
    • Disabled TLS peer/host certificate verification (CURLOPT_SSL_VERIFYPEER 0 / CURLOPT_SSL_VERIFYHOST 0)
      • Some download URLs were failing, and this fixed them.
    • Corrected a stale comments.
  11. Foreground related bug fixes (improper input isolation fixes for resuming games).

Full Changelog: v2.5.1...v2.5.2

Quick Update

  • Foreground request related bug fixes (bugs were introduced with our initial changes). - 07/10/2026 2:57 AM PST
  • Slight color tweak to default theme. - 07/10/2026 4:24 AM PST
  • New text wrapping mode auto, notification translations fix, swipe_offset Ultrahand config.ini entry for manual setting the swipe to open's X-start. - 07/10/2026 7:45 AM PST
  • Hard line break fix for wrapText (proper handling of newlines). - 07/10/2026 08:07 AM PST
  • Add translation handling in CategoryHeader constructors. -07/10/2026 8:38 AM PST
  • Translations in list items and category headers now apply to sections on divider split strings, bug fix for hard line break changes. - 07/10/2026 10:05 AM PST

Full Changelog: v2.5.2...1b7a64a