Skip to content

Commit a1c3d38

Browse files
committed
Remove window usage from link terminalContrib
Fixes #195804
1 parent c855616 commit a1c3d38

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

src/vs/workbench/contrib/terminalContrib/links/browser/terminalLink.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { Emitter, Event } from 'vs/base/common/event';
1313
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1414
import { TerminalLinkType } from 'vs/workbench/contrib/terminalContrib/links/browser/links';
1515
import { IHoverAction } from 'vs/workbench/services/hover/browser/hover';
16-
import { $window } from 'vs/base/browser/window';
1716

1817
export class TerminalLink extends DisposableStore implements ILink {
1918
decorations: ILinkDecorations;
@@ -62,14 +61,16 @@ export class TerminalLink extends DisposableStore implements ILink {
6261
}
6362

6463
hover(event: MouseEvent, text: string): void {
64+
const w = dom.getWindow(event);
65+
const d = w.document;
6566
// Listen for modifier before handing it off to the hover to handle so it gets disposed correctly
6667
this._hoverListeners = new DisposableStore();
67-
this._hoverListeners.add(dom.addDisposableListener($window.document, 'keydown', e => {
68+
this._hoverListeners.add(dom.addDisposableListener(d, 'keydown', e => {
6869
if (!e.repeat && this._isModifierDown(e)) {
6970
this._enableDecorations();
7071
}
7172
}));
72-
this._hoverListeners.add(dom.addDisposableListener($window.document, 'keyup', e => {
73+
this._hoverListeners.add(dom.addDisposableListener(d, 'keyup', e => {
7374
if (!e.repeat && !this._isModifierDown(e)) {
7475
this._disableDecorations();
7576
}
@@ -102,7 +103,7 @@ export class TerminalLink extends DisposableStore implements ILink {
102103
}
103104

104105
const origin = { x: event.pageX, y: event.pageY };
105-
this._hoverListeners.add(dom.addDisposableListener($window.document, dom.EventType.MOUSE_MOVE, e => {
106+
this._hoverListeners.add(dom.addDisposableListener(d, dom.EventType.MOUSE_MOVE, e => {
106107
// Update decorations
107108
if (this._isModifierDown(e)) {
108109
this._enableDecorations();
@@ -111,7 +112,7 @@ export class TerminalLink extends DisposableStore implements ILink {
111112
}
112113

113114
// Reset the scheduler if the mouse moves too much
114-
if (Math.abs(e.pageX - origin.x) > $window.devicePixelRatio * 2 || Math.abs(e.pageY - origin.y) > $window.devicePixelRatio * 2) {
115+
if (Math.abs(e.pageX - origin.x) > w.devicePixelRatio * 2 || Math.abs(e.pageY - origin.y) > w.devicePixelRatio * 2) {
115116
origin.x = e.pageX;
116117
origin.y = e.pageY;
117118
this._tooltipScheduler?.schedule();

src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkResolver.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { isWindows, OperatingSystem, OS } from 'vs/base/common/platform';
1212
import { IFileService } from 'vs/platform/files/common/files';
1313
import { IPath, posix, win32 } from 'vs/base/common/path';
1414
import { ITerminalBackend } from 'vs/platform/terminal/common/terminal';
15-
import { $window } from 'vs/base/browser/window';
15+
import { getActiveWindow } from 'vs/base/browser/dom';
1616

1717
export class TerminalLinkResolver implements ITerminalLinkResolver {
1818
declare _serviceBrand: undefined;
@@ -170,9 +170,9 @@ class LinkCache {
170170
set(link: string | URI, value: ResolvedLink) {
171171
// Reset cached link TTL on any set
172172
if (this._cacheTilTimeout) {
173-
$window.clearTimeout(this._cacheTilTimeout);
173+
getActiveWindow().clearTimeout(this._cacheTilTimeout);
174174
}
175-
this._cacheTilTimeout = $window.setTimeout(() => this._cache.clear(), LinkCacheConstants.TTL);
175+
this._cacheTilTimeout = getActiveWindow().setTimeout(() => this._cache.clear(), LinkCacheConstants.TTL);
176176
this._cache.set(this._getKey(link), value);
177177
}
178178

0 commit comments

Comments
 (0)