Skip to content

Fixes#20

Merged
jserv merged 3 commits into
mainfrom
fix
Jun 22, 2026
Merged

Fixes#20
jserv merged 3 commits into
mainfrom
fix

Conversation

@jserv

@jserv jserv commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary by cubic

Stabilizes xfig differential tests by waiting for Xvfb readiness and tolerating transient apt-get update failures; adds a reliable draw‑line replay with correct tool coordinates. Also guards SDL_SetTextureScaleMode for older SDL and adds an XTest that validates nested sub‑window routing.

  • Bug Fixes

    • Wait for each Xvfb to accept connections; remove fixed sleep and fail fast if Xvfb exits.
    • Make apt-get update best‑effort so unrelated repo errors don’t abort CI.
    • Guard SDL_SetTextureScaleMode wrapper behind SDL 2.0.12 to fix builds on systems with older SDL.
  • New Features

    • Add differential draw‑line replay using the polyline tool at (55,215) and middle‑click commit; runs on both system and compat backends.
    • Add xfig-startup-differential with a 15s wait‑window to match concurrent captures.
    • Add XTest for nested sub‑window routing to ensure child selection is correct and gap clicks are ignored.

Written for commit 19a080b. Summary will update on new commits.

Review in cubic

jserv added 3 commits June 23, 2026 07:22
SDL_ScaleMode and SDL_SetTextureScaleMode arrived in SDL 2.0.12, but the
SDL2 wrapper thunk referenced them unguarded while every neighbor is
version-gated. This broke the compat build on older SDL2 (Ubuntu focal
ships 2.0.10). font.c already gates its only call site on the same
version, so guarding the thunk leaves no undefined reference.
The existing XTest regression only drove a single childless window, so
getContainingWindow's descent into child windows went untested even
though it is the path a synthetic toolbox click takes: each tool icon is
its own X sub-window. Add a parent with two spaced children and a bare
gap, asserting a click routes to the geometrically correct child and a
gap click reaches neither. Runs headless under SDL_VIDEODRIVER=dummy.
Wait for each Xvfb to accept connections instead of sleeping a fixed
second, so a loaded headless runner no longer races the first capture
into a spurious window-wait timeout. Make apt-get update best-effort so
an unrelated broken third-party repo cannot abort the run under set -e.
Split the contended differential capture onto a dedicated 15s wait-window
replay, leaving the 8s budget for the single-Xvfb smoke job.

Add draw-line to the differential. The legacy (32, 96) toolbox click
landed in the inert Drawing label band that xfig 3.2.9 introduced, so a
real X click selected no tool on system X11 and the capture had to be
skipped. Re-point to the polyline cell at (55, 215) and commit the
segment with a middle-click; the xdotool and internal backends now render
the same line (MAE 0.034, threshold 0.16).
@jserv jserv changed the title Fix Fixes Jun 22, 2026
cubic-dev-ai[bot]

This comment was marked as resolved.

@jserv jserv merged commit 77bb6e9 into main Jun 22, 2026
16 checks passed
@jserv jserv deleted the fix branch June 22, 2026 23:34
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