Skip to content

Conversation

@ahundt
Copy link

@ahundt ahundt commented Feb 10, 2026

Summary

  • Fix ID mismatch that made double-click auto-fit on table column resize handles completely non-functional when id_salt is set
  • The double-click detection loop in show_generated constructed widget IDs using ui.id().with("resize_column").with(i), but the resize handle widgets used state_id.with("resize_column").with(i) where state_id = ui.id().with(id_salt) — these never matched, so read_response() never found the interaction
  • Fix: move state_id initialization before the loop and use it for the widget ID
  • Add regression test that creates a resizable table with id_salt, simulates a double-click on the column separator, and verifies the column auto-sizes

Test plan

  • New regression test passes with fix, fails without it
  • All existing regression tests pass (13/13)
  • cargo clippy clean
  • CI passes

… set

The double-click detection loop in `show_generated` constructed widget
IDs using `ui.id().with("resize_column").with(i)`, but the actual
resize handle widgets were created with
`state_id.with("resize_column").with(i)` where `state_id = ui.id().with(id_salt)`.

When a table uses `id_salt` (common when multiple tables exist in the
same Ui), these IDs never match, so `read_response()` never finds the
resize handle's interactions. This made double-click auto-fit
completely non-functional for any table with an `id_salt`.

Fix: move the `state_id` initialization before the double-click
detection loop and use `state_id` instead of `ui.id()` for the
widget ID, matching what the resize handle widget uses.
Create a resizable two-column table with id_salt set, simulate a
double-click on the column separator (resize handle), and verify the
first column auto-sizes to fit its content.

The test uses a small step_dt (0.05s) because egui_kittest processes
each event in its own frame — with the default 0.25s step_dt, two
clicks span 4 frames (1.0s), exceeding the 0.3s double-click threshold.

Without the fix in the preceding commit, this test fails because the
mismatched widget IDs prevent read_response() from detecting the
double-click on the resize handle.
@github-actions
Copy link

Preview is being built...

Preview will be available at https://egui-pr-preview.github.io/pr/7896-fix/table-column-separator-double-click-id-salt

View snapshot changes at kitdiff

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