Daniel Imms
9c4f0f96ca
Merge pull request #5831 from juspay/fix/intersection-observer-nullify
...
Clear IntersectionObserver reference on dispose
2026-05-26 12:23:13 -07:00
Daniel Imms
18c370a154
Merge pull request #5813 from CodinGame/fix-wrong-window-regression
...
Use element window instead of global object
2026-05-26 12:18:29 -07:00
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
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
Sridhar Ratnakumar
685434ca84
Fix IntersectionObserver retention on dispose
2026-04-23 11:35:56 -04: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
Loïc Mangeonjean
69ee4ad23b
fix: use element window instead of global object
2026-04-13 12:51:17 +02:00
Anthony Kim
446bcb1f75
Fix option b and f
2026-04-03 09:26:32 -07:00
Daniel Imms
6813fc175e
Merge remote-tracking branch 'upstream/master' into 5377_scroll
2026-03-11 12:15:59 +09: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
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
Daniel Imms
671425bf5a
Use helpers in other tests
2026-03-09 13:03:00 +09: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
Daniel Imms
cc8e680790
Add attributesEqual and underline diff APIs
...
Fixes #3440
2026-02-06 16:21:25 -08:00
Daniel Imms
2e776c0820
Use ILogService in TaskQueue
2026-02-05 06:40:50 -08:00
Daniel Imms
6ef653e589
Merge remote-tracking branch 'upstream/master' into de_vs
2026-02-03 07:05:50 -08:00
Daniel Imms
205cf6089d
Prevent blink interval from running unless needed
...
Part of #944
2026-02-03 05:07:40 -08:00
Daniel Imms
eea03cf0a9
Use lightweight versions of most vs/ imports
2026-01-31 22:52:19 -08:00
Daniel Imms
0e679ea6ae
Use nullish coalescing in KeyboardService
2026-01-31 08:56:53 -08:00
Daniel Imms
d0e8141f7c
Merge branch 'master' into nullish
2026-01-31 08:56:14 -08:00
Daniel Imms
bad7e329df
Add @typescript-eslint/prefer-nullish-coalescing eslint rule
2026-01-31 08:43:05 -08:00
Daniel Imms
de01d4608c
Move kitty input mode into a class to avoid init cost
2026-01-30 07:09:48 -08:00
Daniel Imms
d35481c3f9
Move win32 input mode into a class to avoid init cost
2026-01-30 07:07:55 -08:00
Daniel Imms
f80dbf3d03
Fix lint, split up namespace and interface
2026-01-30 06:21:15 -08:00
Daniel Imms
e8d99d50a6
Remove vs dependency in common
...
Fixes #5631
2026-01-30 06:03:16 -08:00
Daniel Imms
afc6f0b7eb
Fix caps not working in win32InputMode
...
Part of #2357
2026-01-11 09:00:08 -08:00
Daniel Imms
8b35c67dd3
useWin32 -> useWin32InputMode
2026-01-10 05:52:19 -08:00
Daniel Imms
ee47054678
Implement win32-input-mode
...
Fixes #2357
2026-01-10 05:27:03 -08:00
Daniel Imms
73cba6dda3
Clean up, add sgr extension to api
2026-01-10 04:38:06 -08:00
Daniel Imms
ec78500f86
Create IKeyboardService
2026-01-10 04:19:23 -08:00
Daniel Imms
55d12e03d1
Remove unneeded test
2026-01-08 17:04:35 -08:00
Daniel Imms
613aa6ba23
Fire onSelectionChange when starting to drag
2026-01-08 16:51:45 -08:00
Daniel Imms
4b9566cef0
Merge pull request #5535 from Tyriar/5408_2
...
Fix firefox selection when in shadow dom take 2
2025-12-28 16:05:49 -08:00
Loïc Mangeonjean
e7434a932d
fix: fix computed style computation on firefox inside a shadow dom
2025-12-28 15:55:21 -08:00
Daniel Imms
2fb42c554e
Force reset to use sync render
...
Fixes #5184
2025-12-28 15:16:23 -08:00
Daniel Imms
4619a755b1
Force a sync render after resize occurs
...
Fixes #4922
Related microsoft/vscode#230120
2025-12-28 14:38:42 -08:00
Daniel Imms
5d24866042
Move customGlyphs option into webgl addon
...
Fixes #5480
2025-12-24 08:35:06 -08:00
Daniel Imms
bd361af105
Fix lint
2025-12-10 07:59:52 -08:00
Daniel Imms
9ea059de6f
Move SynchronizedOutputHandler to bottom of file
2025-12-10 07:50:59 -08:00
Daniel Imms
7cdf3f9dd7
Prefer const enum so the number is inlined
2025-12-10 07:50:28 -08:00
Chris Lloyd and Claude
6b63c5f260
Address PR review feedback for synchronized output
...
- Remove synchronizedOutputTimeout public API, hardcode 1s timeout
- Extract SynchronizedOutputHandler class for cleaner code
- Update spec URL to contour-terminal/vt-extensions
- Remove unnecessary comment in InputHandler
- Delete unit tests, add integration tests in SharedRendererTests
- Fix whitespace issue
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-09 07:58:31 -08:00
Chris Lloyd and Claude
7228e2e2dc
Add synchronized output support (DEC mode 2026)
...
Implement synchronized output mode (CSI ? 2026 h/l) which allows
applications to batch terminal updates and render them atomically,
preventing screen tearing during rapid output.
Features:
- BSU (CSI ? 2026 h) pauses rendering, buffering row updates
- ESU (CSI ? 2026 l) flushes buffer and renders atomically
- Configurable timeout via synchronizedOutputTimeout option (default 5s)
- Exposed via terminal.modes.synchronizedOutputMode
Closes #3375
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-04 11:16:25 -08:00
Daniel Imms
9a7517d3eb
Clear selection on vertical resize
...
Fixes #5300
2025-10-19 01:15:30 -07:00
Daniel Imms
3e998387fe
Blend cursorAccent with background too
...
Fixes #5241
2024-12-20 08:51:17 -08:00