Skip to content

Add overlay hosting, modal dialogs, and anchored ComboBox popups - #24

Merged
golba98 merged 1 commit into
mainfrom
feat/overlays-dialogs-combobox
Oct 28, 2026
Merged

golba98 merged 1 commit into
mainfrom
feat/overlays-dialogs-combobox

Conversation

@golba98

@golba98 golba98 commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Add UIContext-owned overlays and reusable modal dialogs, then build anchored transient popups and a non-editable ComboBox on the same ownership and dispatch mechanisms.

Changes

  • Add context-specific overlay handles, modal focus boundaries and restoration, safe dismissal, stacked dialogs, and deferred completion callbacks.
  • Add owner-scoped popup placement, scrolling, modal integration, gesture-release suppression, and ComboBox selection/highlight separation, disabled choices, and deterministic type-ahead.
  • Include focused examples, headless and renderer regression tests, installed-package consumer coverage, CI smoke tests, and usage documentation.
  • Add opt-in native presentation diagnostics and a minimal GLFW control. Production rendering remains event-driven; no repaint timers, extra swaps, or synchronization workarounds were introduced.

Validation

  • Rebuilt Debug and Release and reran LIBGL_ALWAYS_SOFTWARE=1 xvfb-run -a ctest --preset debug / release: 9/9 suites passed in each.
  • ASan/UBSan: popup, ComboBox, dialog, and UI suites passed (4/4).
  • Installed consumers and all six examples passed in both presets, including launches from /tmp.
  • Controlled native captures: all 15 ComboBox scenes matched between demand and continuous modes; demand mode settled to zero swaps during the final 0.5-second idle sample.
  • Warning-enabled diagnostic compilation, Python byte-compilation, and git diff --check passed.

Presentation investigation and limits

The original intermittent all-black root capture was not reproduced and its cause remains unproven. Explicit GL front reads can be black while native captures are correct, and post-swap/idle reads can perturb resize presentation; the minimal GLFW control reproduces these effects. Live desktop client capture succeeds while root capture returns BadMatch. The report distinguishes those observations from a confirmed MyGUI defect.

Windows and macOS were not tested locally. Raw captures and logs remain in the ignored local build directory; the committed diagnostic tools and report provide reproduction commands.

@golba98
golba98 merged commit 0912ced into main Oct 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant