Skip to content

Commit cc62699

Browse files
committed
Fix hover over output not working after second execution
Fix microsoft#94314
1 parent 81aac38 commit cc62699

1 file changed

Lines changed: 21 additions & 18 deletions

File tree

src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,25 @@ function webviewPreloads() {
179179
return element;
180180
}
181181

182+
function addMouseoverListeners(element: HTMLElement, outputId: string): void {
183+
element.addEventListener('mouseenter', () => {
184+
vscode.postMessage({
185+
__vscode_notebook_message: true,
186+
type: 'mouseenter',
187+
id: outputId,
188+
data: {}
189+
});
190+
});
191+
element.addEventListener('mouseleave', () => {
192+
vscode.postMessage({
193+
__vscode_notebook_message: true,
194+
type: 'mouseleave',
195+
id: outputId,
196+
data: {}
197+
});
198+
});
199+
}
200+
182201
const dontEmit = Symbol('dontEmit');
183202

184203
function createEmitter<T>(listenerChange: (listeners: Set<Listener<T>>) => void = () => undefined): EmitterLike<T> {
@@ -280,23 +299,6 @@ function webviewPreloads() {
280299
container.appendChild(newElement);
281300
cellOutputContainer = newElement;
282301

283-
cellOutputContainer.addEventListener('mouseenter', () => {
284-
vscode.postMessage({
285-
__vscode_notebook_message: true,
286-
type: 'mouseenter',
287-
id: outputId,
288-
data: {}
289-
});
290-
});
291-
cellOutputContainer.addEventListener('mouseleave', () => {
292-
vscode.postMessage({
293-
__vscode_notebook_message: true,
294-
type: 'mouseleave',
295-
id: outputId,
296-
data: {}
297-
});
298-
});
299-
300302
const lowerWrapperElement = createFocusSink(id, outputId, true);
301303
container.appendChild(lowerWrapperElement);
302304
}
@@ -307,8 +309,9 @@ function webviewPreloads() {
307309
outputNode.style.left = event.data.left + 'px';
308310
outputNode.style.width = 'calc(100% - ' + event.data.left + 'px)';
309311
outputNode.style.minHeight = '32px';
310-
311312
outputNode.id = outputId;
313+
314+
addMouseoverListeners(outputNode, outputId);
312315
let content = event.data.content;
313316
outputNode.innerHTML = content;
314317
cellOutputContainer.appendChild(outputNode);

0 commit comments

Comments
 (0)