Skip to content

Commit 215c9da

Browse files
committed
Fix tree hover position
Fixes microsoft#106010
1 parent fda9471 commit 215c9da

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/vs/workbench/contrib/views/browser/treeView.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -811,12 +811,17 @@ class TreeRenderer extends Disposable implements ITreeRenderer<ITreeItem, FuzzyS
811811
const hoverService = this.hoverService;
812812
const hoverDelay = this.hoverDelay;
813813
let hoverOptions: IHoverOptions | undefined;
814+
let mouseX: number | undefined;
814815
function mouseOver(this: HTMLElement, e: MouseEvent): any {
815816
let isHovering = true;
817+
function mouseMove(this: HTMLElement, e: MouseEvent): any {
818+
mouseX = e.x;
819+
}
816820
function mouseLeave(this: HTMLElement, e: MouseEvent): any {
817821
isHovering = false;
818822
}
819823
this.addEventListener(DOM.EventType.MOUSE_LEAVE, mouseLeave, { passive: true });
824+
this.addEventListener(DOM.EventType.MOUSE_MOVE, mouseMove, { passive: true });
820825
setTimeout(async () => {
821826
if (node instanceof ResolvableTreeItem) {
822827
await node.resolve();
@@ -830,9 +835,12 @@ class TreeRenderer extends Disposable implements ITreeRenderer<ITreeItem, FuzzyS
830835
};
831836
hoverOptions = { text: tooltip, target };
832837
}
833-
(<IHoverTarget>hoverOptions.target).x = e.x;
838+
if (mouseX !== undefined) {
839+
(<IHoverTarget>hoverOptions.target).x = mouseX;
840+
}
834841
hoverService.showHover(hoverOptions);
835842
}
843+
this.removeEventListener(DOM.EventType.MOUSE_MOVE, mouseMove);
836844
this.removeEventListener(DOM.EventType.MOUSE_LEAVE, mouseLeave);
837845
}, hoverDelay);
838846
}

0 commit comments

Comments
 (0)