Skip to content

fix(test): the UI scenarios' drags move only ImGui's pointer after the press, since a warp mid-drag releases it on Windows (#2711) - #2935

Merged
mgradwohl merged 2 commits into
mainfrom
fix/ui-scenarios-run-serial
Oct 25, 2026
Merged

mgradwohl merged 2 commits into
mainfrom
fix/ui-scenarios-run-serial

Conversation

@mgradwohl

@mgradwohl mgradwohl commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Description

UiScenarioTest (#2711) keeps failing at column-reordered on Windows CI, for example on #2913's run and on main at 788bcb4.

Not this: this PR's first commit ran the suite alone (RUN_SERIAL), and it still failed, last of 690. So other suites' windows weren't the cause, and that commit is reverted.

The cause: #2925 warped the OS cursor with every injected position, including the drag's moves. A warp is a real mouse move. On Windows, SDL compares the buttons it thinks are down with the ones the move reports, so the first move after the injected press sent a button-up and ended the drag. Single clicks survived because they finish within a frame or two.

The fix: the drag warps once, at its start, before the press. While the button is held it moves only ImGui's pointer (dragPointer()). The OS cursor stays over the window, so the SDL backend's global-position fallback stays off.

PR Size

Small: 1 file (the test), +11/−1 net.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Build/CI improvement

Checklist

  • I have read the CONTRIBUTING guidelines
  • My code follows the project's coding standards
  • I have run clang-tidy and addressed any warnings
  • I have run clang-format on my changes
  • I have run pre-commit run --all-files or installed pre-commit hooks
  • I have added tests that prove my fix/feature works: it fixes a test
  • All new and existing tests pass
  • I have updated documentation as needed: nothing documents it

Testing

  • Locally: passes under Xvfb (twice), on the WSLg desktop through XWayland, and natively on Wayland.
  • The real check: this PR's Windows CI run. I have no Windows machine here.

🤖 Generated with Claude Code

…display suite's window takes their pointer (#2711)

UiScenarioTest still failed at column-reordered on Windows CI now and then (#2913's run; main's
788bcb4): it passed when ctest ran it early and failed when it ran beside the other on-display
suites. On Windows the cursor and the window under it are the desktop's, so a window another suite
opened over the scenarios' took the hover, and the drag never reached the table; #2925's cursor warp
can't help there. RUN_SERIAL on the suite's entry keeps the others out while it runs (about 6-12 s).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mgradwohl mgradwohl added bug Something isn't working testing agent:WSL Owned by the Linux/WSL Claude session (bug-fix conveyor) labels Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@mgradwohl
mgradwohl enabled auto-merge (squash) October 25, 2026 13:48
…e press, since a warp mid-drag releases it on Windows (#2711)

UiScenarioTest kept failing at column-reordered on Windows CI, run alone too (#2935's first run, last of
690), so it wasn't other suites' windows. #2925 warped the OS cursor with every injected position, the
drag's moves included; a warp is a real mouse move, and on Windows SDL squares the buttons it thinks are
down with the move's, so the first move after the press sent a button-up and the drag ended. The drag
now warps once, at its start, and moves ImGui's pointer alone while the button is held; the cursor stays
over the window, so the backend's global-position fallback stays off. Reverts the RUN_SERIAL that
didn't help.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mgradwohl mgradwohl changed the title test(cmake): the UI scenarios run alone, since on Windows another on-display suite's window takes their pointer (#2711) fix(test): the UI scenarios' drags move only ImGui's pointer after the press, since a warp mid-drag releases it on Windows (#2711) Oct 25, 2026
@mgradwohl
mgradwohl disabled auto-merge October 25, 2026 13:57
@mgradwohl
mgradwohl enabled auto-merge (squash) October 25, 2026 13:57
@mgradwohl
mgradwohl merged commit f202f86 into main Oct 25, 2026
24 checks passed
@mgradwohl
mgradwohl deleted the fix/ui-scenarios-run-serial branch October 25, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:WSL Owned by the Linux/WSL Claude session (bug-fix conveyor) bug Something isn't working testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant