Skip to content

Give each owner's panel its own ImGui ID scope [patch] - #524

Merged
matt-edmondson merged 1 commit into
mainfrom
fix/522-owner-id-scope
Nov 4, 2026
Merged

matt-edmondson merged 1 commit into
mainfrom
fix/522-owner-id-scope

Conversation

@matt-edmondson

Copy link
Copy Markdown
Contributor

ImGui.CollapsingHeader does not open an ID scope. When two owners both have a repository with the same name (every org's .github), their two Selectable rows got the same ImGui ID. Clicking the second owner's row did nothing, because the first row took the click.

Change

  • ShowCollapsiblePanel now wraps the panel content in PushID(name)/PopID(). Every panel gets the scope, not only the owner panels, as the triage suggested. Popups opened from inside a panel are opened and shown within that same scope, so they still match (the gallery's Propagate context-menu stage still passes).
  • Repository rows are now probe-marked with the owner-qualified key (repo/ktsu-dev..github) instead of the bare name, so a test can tell the two rows apart. The gallery's SelectRepository clicks the new name.
  • GalleryApp.Start has an overload that takes the settings to run on.

Tests

  • New: RepoPanelTests.ClickingASharedRepoName_SelectsThatOwnersRepository. It runs two owners that each have .github, clicks each row, and asserts Options.BaseRepo. It fails without the PushID and passes with it.
  • UI tests: 8 of 8 pass, including every gallery stage.
  • ProjectDirector.Test: 178 pass, 1 skipped, 1 failed. The failure is CloningAnLfsRepositoryRestoresTheFileContentRatherThanThePointer, and it fails the same way on main in this environment, so it is unrelated to this change.

Fixes #522


Generated by Claude Code

CollapsingHeader opens no ID scope, so a repository name shared by two owners
(every org's .github) gave both rows the same ImGui ID and a click on the
second owner's row was swallowed by the first. Each collapsible panel now
pushes its name as an ID around its content.

The repository rows are probed by their owner-qualified name, so the UI tests
can tell the two rows apart.

Fixes #522

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017vfJW5JsJWSEGD7D4Jhs1d
@sonarqubecloud

sonarqubecloud Bot commented Nov 2, 2026

Copy link
Copy Markdown

@matt-edmondson
matt-edmondson merged commit 7e78121 into main Nov 4, 2026
16 checks passed
@matt-edmondson
matt-edmondson deleted the fix/522-owner-id-scope branch November 4, 2026 01:02
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.

Two owners with a same-named repo (e.g. both have .github): clicking the second owner's row does nothing, because the rows share an ImGui ID

2 participants