Repository navigation
Merge production LUI extensions with upstream 0.8.3 - #20
Merged
Merged
Conversation
Preserve requested virtual-list windows, active row pins, keyed lookups, and weak handle ownership alongside committed input capture and inline text geometry. Keep the upstream module identity and imports unchanged. Validation: focused ui race regressions; complete ui/... tests without race (including allocation checks); CGO_ENABLED=0 Linux and Windows ui/... builds. Release hello is unchanged; counter-native grows 128 bytes for the committed-state and input-capture guards.
Remove the LCD order from a copy of the matched font pattern for the grayscale pass. Keep the original Pango font for shaping and opaque subpixel rendering, and preserve color glyph detection.
Fix inherited pointer hit policy and delegated click capture
Publish editing operations without leaking marked text or echoing authoritative model replacements.
Combine the published table-pointer-contract and editor-committed-changes branches as one dependency baseline. Preserve both parent histories and their source blobs without conflict edits.
Merge the reviewed captured-input correction with its existing cancellation guards.
Merge the reviewed controlled-editor and native composition-phase contracts.
Merge the reviewed shared input baseline while preserving both dependency histories.
Merge the reviewed synchronous per-window focus lifecycle revision and its capture-context documentation.
fix(ui): deliver capture-loss cancellation to input observers
Publish text-input caret geometry after frame callbacks while preserving input and lifecycle fences.
Remove fontconfig's global color preference in the Pango fontmap substitution hook so mixed family lists keep bare digits in text faces. Leave emoji itemization and explicit color=false unchanged. Require Pango 1.48 for the hook and document it.
…into fix/linux-pango-text-family-order-20261031
…20261031 fix(text): preserve text families before emoji fallback
Carry layout characters from NSEvent through surface key events to capture and focused handlers. Key text is metadata, distinct from committed InputText.
Preserve production extensions alongside upstream text layout, input, overlays and menus. Reconcile committed geometry, native cancellation, capture ownership and lazy icon linking with the upstream APIs.
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
Prevent reentrant window close from completing a released pointer twice. Preserve explicit menu icons while replacing or removing repeated legacy PNG fallbacks, and keep retained bounds in window DIPs under zoom.
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.
Summary
006f3ca14660with upstream1db4e93bd48e, preserving both parents and the upstream Windows capture, raw-key, IME, layout and text-engine improvements.CommittedTextLineseparate from upstream UTF-16/layout-localTextLine; preserve the actual three-valueScrollOffsetAPI and single upstream z-order engine.Why the diff is this size
This brings the existing production patch line into fork
main; it is not another upstream sync or 5,510 lines of newly authored application logic. The old production patch already changed 101 files (+4,904/−249). Of this PR's 54 commits, 49 are inherited production history, followed by the genuine merge and four additive fixes.Relative to upstream/main at
1db4e93b, final4e17292dchanges 106 files (+5,510/−627):28 changed files are byte-identical to the old production tree. Most migration-inventory churn is formatting: ignoring whitespace,
internal/uimigrate/uiapi.goadds only 17 existing exported API entries. Post-merge fixes address synchronous-close duplicate pointer completion, generated PNG replacement/removal, zoomed handle/context-menu coordinates stale generated API inventory and Windows native-menu priority after capture. The final Windows repair changes five production files (+21/−10), with no test/helper/assertion changes. Existing assertions were not weakened; one minimal red/green pointer-close regression was retained.Testing
Final source:
4e17292d1de81e74d34d10231a93dcc78af4f763.internal/uimigratechecks pass. Focused UI race passed ate12a64d9; full platform/text/editor/richtext race passed at1cbe160b. After the final Windows repair, complete UI/platform/uimigrate tests and full regular/production-tag vet were rerun successfully.e12a64d9, both unfilteredCGO_ENABLED=0 go test -timeout 20m ./...and themygo_noinspectorfull suite exited: onlyinternal/darwin.TestLocalesfails (x-Test versus en-001). The identical assertion fails on clean detached upstream1db4e93bon the same VM. No skips, weakened assertions or extended per-test waits.MYGO_E2E=1 go test ./internal/e2esuite successfully, includingTestNativeMenuShortcuts. Application accelerators run after CaptureInput but before ordinary content; edit-role keys remain content-first. Cross-compilation is not GUI validation. Product-level Logseq UI/IME acceptance is not claimed.Release size
Same host, Go 1.27.3, Darwin arm64, CGO disabled,
-trimpath -tags mygo_noinspector -ldflags '-s -w -X github.com/egoist/mygo.production=1':Pre-repair dumpdep/nm attributes retained code to fork measurement/capture and shared native/menu/composition lifecycle paths; total file deltas also include metadata/data/alignment. No new image/png.Decode, menuicon.Decode or ReflectMethod edges; the ImagePNG setter is not retained in either example. The final dispatch seam adds 16 bytes to each Darwin example and 512 bytes to each Windows example versus
e12a64d9; Windows dumpdep attributes it to the small per-event callback/closure and field metadata, with no heavy feature linkage.Tested on:
AI disclosure
Link to Devin session: https://app.devin.ai/sessions/949a417dd06241acb1e04361de5b162b
Open in Devin Desktop: https://app.devin.ai/desktop/session/949a417dd06241acb1e04361de5b162b?variant=devin
Requested by: @tiensonqin