Skip to content

fix(dom): skip wide glyph continuation cells#74

Closed
EfeDurmaz16 wants to merge 1 commit into
vercel-labs:mainfrom
EfeDurmaz16:fix/dom-wide-continuation-cells
Closed

fix(dom): skip wide glyph continuation cells#74
EfeDurmaz16 wants to merge 1 commit into
vercel-labs:mainfrom
EfeDurmaz16:fix/dom-wide-continuation-cells

Conversation

@EfeDurmaz16

Copy link
Copy Markdown

Summary

  • expose optional cell display width through the shared CellData interface
  • preserve Ghostty width metadata for viewport and scrollback cells
  • skip width-0 continuation cells in the DOM renderer without shifting cursor placement

Closes #71.

Verification

  • pnpm --filter @wterm/core build
  • pnpm --filter @wterm/dom test
  • pnpm --filter @wterm/dom type-check
  • pnpm --filter @wterm/ghostty type-check
  • pnpm --filter @wterm/core type-check
  • pnpm --filter @wterm/core test
  • pnpm format:check

@vercel

vercel Bot commented May 15, 2026

Copy link
Copy Markdown

@EfeDurmaz16 is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Gatos90 pushed a commit to Gatos90/wterm that referenced this pull request Jul 2, 2026
- Implement the get_scrollback_line WASM export against libghostty's
  page list (offset 0 = newest scrollback row, matching the built-in
  Zig core convention). Returns the used line width (trailing
  never-written cells trimmed).
- Fix getScrollbackCell packing RGB colors unconditionally; explicit
  colors are now gated on colorFlags like getCell (fixes scrollback
  rendering black-on-black, see vercel-labs#66).
- Expose CellData.width (0 = wide-glyph spacer, 1 = normal, 2 = wide)
  from both viewport and scrollback reads so consumers can handle
  CJK/emoji correctly (see vercel-labs#71/vercel-labs#74).
- Add optional TerminalCore.getScrollbackLine bulk read; GhosttyCore
  memoizes the last line per write-generation so the renderer's
  per-cell loop costs one WASM crossing per line instead of one per
  cell.
- Add scripts/build-wasm-manual.sh: builds ghostty-vt.wasm without
  `zig build` (explicit -target on every native step) for hosts where
  Zig 0.15.x cannot auto-detect the OS (e.g. macOS 26 / Darwin 25).
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.

DOM renderer paints wide-character continuation cells as U+0020, adding a stray column after every CJK/emoji glyph

1 participant