提交 dd2fc7ed 编写于 作者: B Benjamin Pasero

fix #44581

上级 e723f545
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import 'vs/css!./media/notificationsToasts'; import 'vs/css!./media/notificationsToasts';
import { INotificationsModel, NotificationChangeType, INotificationChangeEvent, INotificationViewItem, NotificationViewItemLabelKind } from 'vs/workbench/common/notifications'; import { INotificationsModel, NotificationChangeType, INotificationChangeEvent, INotificationViewItem, NotificationViewItemLabelKind } from 'vs/workbench/common/notifications';
import { IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle'; import { IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle';
import { addClass, removeClass, isAncestor, addDisposableListener } from 'vs/base/browser/dom'; import { addClass, removeClass, isAncestor, addDisposableListener, EventType } from 'vs/base/browser/dom';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { NotificationsList } from 'vs/workbench/browser/parts/notifications/notificationsList'; import { NotificationsList } from 'vs/workbench/browser/parts/notifications/notificationsList';
import { Dimension } from 'vs/base/browser/builder'; import { Dimension } from 'vs/base/browser/builder';
...@@ -164,10 +164,17 @@ export class NotificationsToasts extends Themable { ...@@ -164,10 +164,17 @@ export class NotificationsToasts extends Themable {
// Automatically hide collapsed notifications // Automatically hide collapsed notifications
if (!item.expanded) { if (!item.expanded) {
// Track mouse over item
let isMouseOverToast = false;
itemDisposeables.push(addDisposableListener(notificationToastContainer, EventType.MOUSE_OVER, () => isMouseOverToast = true));
itemDisposeables.push(addDisposableListener(notificationToastContainer, EventType.MOUSE_OUT, () => isMouseOverToast = false));
// Install Timers
let timeoutHandle: number; let timeoutHandle: number;
const hideAfterTimeout = () => { const hideAfterTimeout = () => {
timeoutHandle = setTimeout(() => { timeoutHandle = setTimeout(() => {
if (!notificationList.hasFocus() && !item.expanded) { if (!notificationList.hasFocus() && !item.expanded && !isMouseOverToast) {
this.removeToast(item); this.removeToast(item);
} else { } else {
hideAfterTimeout(); // push out disposal if item has focus or is expanded hideAfterTimeout(); // push out disposal if item has focus or is expanded
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册