Daniel Imms
1e189625fa
Merge remote-tracking branch 'upstream/master' into inst_const_enuym
2026-05-02 06:49:10 -07:00
Daniel Imms
80debafa11
Convert a lot of top level consts to const enums
2026-05-02 06:44:25 -07:00
Daniel Imms
d911b40a47
Avoid any in test
2026-05-02 05:52:33 -07:00
Daniel Imms
52d4b2719c
Move cache into Buffer owned object, use WeakRefs
...
This allows O(1) clearing of the cache, a single TTL timer and we
can avoid making BufferLine's Disposable
2026-05-02 05:32:43 -07:00
Jörg Breitbart
9c8de633e9
multiple changes in APC handling:
...
- change interface to IFunctionIdentifier (API change)
- extend parser states APC_ENTRY, APC_INTERMEDIATE, APC_PASSTHROUGH
- remove APC_STRING
- change ApcParser.start to retrieve ident
- change actions APC_START and APC_PUT
2026-04-24 13:53:31 +02:00
Daniel Imms
0911688295
Merge pull request #5817 from juspay/fix/dispose-leaks
...
Fix dispose leaks: register CursorBlinkStateManager + _pausedResizeTask
2026-04-21 12:57:24 -07:00
Daniel Imms
62ce318a07
Merge pull request #5827 from Tyriar/or_lifecycle
...
Improve overview ruler lifecycle
2026-04-21 11:22:09 -07:00
Daniel Imms
08ae141ef7
Improve overview ruler lifecycle
...
Fixes #5826
2026-04-21 11:13:59 -07:00
Sridhar Ratnakumar
7a6e724bfe
Fix dispose leaks: register CursorBlinkStateManager + _pausedResizeTask
...
Three related disposable-registration gaps that leak xterm Terminal
instances when the host application unmounts a Terminal. Evidence +
full writeup at juspay/kolu#606 .
1. addon-webgl/WebglRenderer._cursorBlinkStateManager was declared
`= new MutableDisposable()` without the `this._register(...)`
wrapper that every sibling MutableDisposable in the class uses.
CursorBlinkStateManager runs a setInterval for the cursor blink
and its `dispose()` correctly clears it — but dispose() was never
called because the disposable wasn't registered. The live timer
kept the renderer (and thus the Terminal) alive past host
unmount.
2. common/TaskQueue.DebouncedIdleTask had no `dispose()` method.
Added one that clears the internal IdleTaskQueue (cancelling any
pending idle callback).
3. browser/services/RenderService._pausedResizeTask (a
DebouncedIdleTask) was not registered. Wrapped with
`this._register(...)` so RenderService.dispose propagates.
Verified in a downstream app (kolu) with a repro that toggles Focus
vs Canvas layout modes:
- Pre-fix: 24/28 disposed xterm Terminals retained past host unmount
+ forced GC.
- Post-fix: 0/28 retained.
Retention chain (before fix):
DOMTimer → ScheduledAction → V8Function
→ CursorBlinkStateManager._renderCallback → WebglRenderer
→ Terminal
2026-04-17 13:32:01 -04:00
Anthony Kim
446bcb1f75
Fix option b and f
2026-04-03 09:26:32 -07:00
Daniel Imms
f1b0a96094
Merge pull request #5770 from mgabor3141/fix/viewport-sync-output-flicker
...
fix: defer viewport DOM sync during synchronized output (DEC 2026)
2026-03-15 04:35:17 +09:00
Daniel Imms
49096a21fd
Delete src/browser/Viewport.test.ts
...
Trying to remove jsdom eventually, this test is also overly fragile, we'll just do without.
2026-03-15 04:27:01 +09:00
Daniel Imms
4350536685
Prefer repeat over Array().join
...
Fixes #5771
2026-03-13 11:11:27 +09:00
mgabor3141
9feb963cc9
fix: defer viewport DOM sync during synchronized output
...
Defer Viewport DOM scroll updates while DEC 2026 synchronized output is
active, then flush once rendering resumes so DOM and canvas update
atomically.
Also update demo sizing to avoid relying on removed internal viewport
scrollBarWidth.
2026-03-12 18:51:38 +01:00
mgabor3141
f4042876c6
test: add viewport synchronized-output regression coverage (fails until fix)
2026-03-12 18:50:41 +01:00
mgabor3141
c294695444
refactor: plumb core service into Viewport constructor
2026-03-12 18:50:31 +01:00
Daniel Imms
5c2b19f2c8
Only update necessary DOM range on selection change
...
Fixes #4633
2026-03-12 11:36:33 +09:00
Daniel Imms
fb25eb8f79
Merge pull request #5764 from Tyriar/5675
...
Apply font styles directly to spans
2026-03-11 16:09:13 +09:00
Daniel Imms
e7a4578933
Don't apply color to the spans
2026-03-11 16:01:41 +09:00
Daniel Imms
a05a3321d5
Apply font styles directly to spans
...
The universal selector was overriding this since the font styles
only applied to the div, not the span.
Fixes #5675
2026-03-11 13:44:22 +09:00
Daniel Imms
1c1aac0da8
Update src/browser/input/CompositionHelper.ts
2026-03-11 13:12:36 +09:00
Daniel Imms
beeebca1a4
Merge branch 'master' into fix/ime-middle-composition-suffix
2026-03-11 13:06:35 +09:00
Daniel Imms
fd1e53c63f
Merge pull request #5762 from Tyriar/5760
...
Fix RTL breaking IME composition rendering
2026-03-11 12:49:50 +09:00
Daniel Imms
2285ac6ab8
Fix RTL breaking IME composition rendering
...
Fixes #5760
2026-03-11 12:41:48 +09:00
sergiochan
5302e62c90
fix: sync helper textarea position after terminal resize
2026-03-10 20:38:45 -07:00
Daniel Imms
5b9b531012
Merge branch 'master' into 5377_scroll
2026-03-11 12:19:42 +09:00
Daniel Imms
6813fc175e
Merge remote-tracking branch 'upstream/master' into 5377_scroll
2026-03-11 12:15:59 +09:00
Daniel Imms
409f049f39
Update src/browser/CoreBrowserTerminal.ts
2026-03-11 12:02:02 +09:00
sergiochan
9e1b89651a
fix(ime): resync textarea position on composition start
2026-03-10 19:36:17 -07:00
Daniel Imms
16b5da5c4c
Fix assertion, bring back triggerMouseEvent tests
2026-03-11 11:03:17 +09:00
Daniel Imms
5f3a4646be
Move non-state methods into MouseService
...
Fixes #5756
2026-03-11 10:49:55 +09:00
Daniel Imms
d63445be94
Move custom mouse event handler into MouseStateService
...
Don't need to keep it in CoreBrowserTerminal
2026-03-11 10:36:35 +09:00
Daniel Imms
2331abe6bd
Rename CoreMouseService to MouseStateService
...
Part of #5756
2026-03-11 10:31:57 +09:00
Daniel Imms
b66128b239
Avoid unnecessary
2026-03-11 10:24:46 +09:00
Daniel Imms
c727240f16
Fix cyclic dependency
...
Linkifier -> MouseService -> SelectionService -> Linkifier
2026-03-11 10:23:38 +09:00
Daniel Imms
649ce22081
Move bindMouse into MouseService
...
Fixes #5754
2026-03-11 10:10:13 +09:00
Anthony Kim
55281022a0
Fix IME composition text overflowing terminal
2026-03-09 14:32:38 -07:00
Daniel Imms
671425bf5a
Use helpers in other tests
2026-03-09 13:03:00 +09:00
Daniel Imms
0b6220e5ea
Merge pull request #5716 from codekrafter/sanitize-bracketed-paste
...
feat: sanitize user text when in bracketed paste mode
2026-02-17 10:12:59 -08:00
Anthony Kim
79c94de968
try not to use !
2026-02-17 09:25:44 -08:00
Anthony Kim
e3980a27db
Revert useDefineForClassFields, fix screenDpr Constructor
2026-02-17 09:24:01 -08:00
Eli Edds
898c0d91c3
feat: sanitize user text when in bracketed paste mode
2026-02-17 12:22:25 -05:00
Daniel Imms
eccbc60aa0
Migrate to tsgo
...
Fixes #5689
2026-02-13 06:59:24 -08:00
Tomoya Nakanishi
c66b0ed168
Fix IME input when composing in the middle of the textarea
...
Track the composition range using the textarea selection and avoid re-sending trailing text that existed before composition started (notably in screenReaderMode).
Fixes #5456
2026-02-13 02:43:06 +09:00
Daniel Imms
008aa1bfb5
Avoid forced layout in overview ruler impl
...
Fixes #5696
2026-02-12 07:00:56 -08:00
Daniel Imms
38913e4ae1
Fix scrolling with touch
...
Part of #5377
2026-02-07 16:09:03 -08:00
Daniel Imms
cc8e680790
Add attributesEqual and underline diff APIs
...
Fixes #3440
2026-02-06 16:21:25 -08:00
Daniel Imms
d155bb6767
Move overviewRuler API under scrollbar
...
Fixes #5678
2026-02-05 09:14:58 -08:00
Daniel Imms
3a147e8e10
Merge pull request #5679 from Tyriar/scrollbar
...
Add scrollbar.showScrollbar
2026-02-05 07:28:45 -08:00
Daniel Imms
c2db7d4c8a
Add scrollbar.showScrollbar
...
Fixes #5676
2026-02-05 07:20:23 -08:00