Conversation
a472e6e to
61fa9cf
Compare
Bring up XNEdit (Motif NEdit fork) as a libx11-compat workload exercising Xft/fontconfig text rendering, and fix the interactive keyboard and Xft paths it surfaced. Keyboard/input: - XKeysymToKeycode round-trips through XkbKeycodeToKeysym so SDL scancode keys (e.g. SDLK_EXECUTE) no longer alias onto ASCII keycodes; resolves shifted punctuation to its base key. - Single usShiftPairs[] table drives shiftedKeysym/unshiftedPunctuation, feeding XkbLookupKeySym and XkbKeysymToModifiers for US-layout symbols. - Xutf8LookupString guards NULL events and reports overflow lengths; appendKeysymUtf8 encodes ASCII/Latin-1/Unicode keysyms to UTF-8. - XTestFakeKeyEvent threads held modifiers. Xft/font: - Extend XftDrawSetClipRectangles, FcCharSet/FcObjectSet overflow guards. - normalizeGlyphAlpha rescales blended glyph alpha for legible text. libXt parallel-build race (osiris, xfig jobs): - The new LIBXT_PATCH_STAMP recipe runs `fetch --force`, which removes and re-stages util/makestrs.c. The host makestrs compile only depended on the headers stamp, so under -j it could read makestrs.c mid-restage and fail with "no such file". Depend on the staged makestrs.c (which carries the patch-stamp prerequisite) so the compile is ordered after the re-stage. Xft mixed-charset open (build, debug-build, sanitize, sdl3 jobs): - openFallbackForCharSet returned NULL when no single host font covered the whole requested charset (e.g. Latin + CJK on a box without a CJK font), making XftFontOpenPattern wrongly refuse a renderable pattern. Real Xft returns a base font and resolves the rest per glyph, so fall back to the best-effort family font instead of NULL. - test-xft-link's mixed-charset case hard-required a CJK glyph, which is not portable; minimal CI images carry no CJK font. Require the ASCII glyph always and assert CJK coverage only when the host can render it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bring up XNEdit (Motif NEdit fork) as a libx11-compat workload exercising Xft/fontconfig text rendering, and fix the interactive keyboard and Xft paths it surfaced.
Keyboard/input:
Xft/font:
Summary by cubic
Adds
XNEditas a Motif workload vialibx11-compatwithlibXt-compatand SDL_ttf‑backedlibXft-compat, validating Unicode text rendering through Xft/fontconfig. WiresXNEditinto the differential CI and fixes keyboard, Xft/drawing, color, and build issues surfaced by the editor.New Features
XNEditviamk/xnedit.mk; add docs, screenshot, and smoke/differential UI replays (startup, UTF‑8 fixture, typing).scripts/run-xnedit-differential-tests.py; includeXNEditin the GitHub differential workflow; map replay keycodes to xdotool; screenshot capture falls back to the renderer when needed.Bug Fixes
XkbLookupKeySym; single US Shift‑pairs table;Xutf8LookupStringoverflow reporting and UTF‑8 encoding for ASCII/Latin‑1/Unicode;XTestFakeKeyEventthreads held modifiers;libXt-compatpatch sets XInput focus; release active grabs when windows become unviewable.XftDrawSetClipRectangles; safer fontconfig stubs (FcCharSet,FcObjectSet,FcUtf8ToUcs4, listing/match) with overflow guards; normalize blended glyph alpha; codepoint‑aware font fallback; mixed‑charset open falls back to a base font when host fonts are missing; add a text‑stamp cache and present path to avoid non‑idempotent re‑blends, flushing stamps on unmap/reparent.rgb:color parsing; optionalLIBX11_COMPAT_SCREEN_GEOMETRYoverride.libXtpatch staging parallel‑build race; silence benign SDL3 typedef redefinition; clearMAKEFLAGS/MFLAGSfor the upstream systemXNEditbuild in differential runs.Written for commit 888a076. Summary will update on new commits.