Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
4302deb9
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4302deb9
编写于
9月 14, 2018
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
notifications - fix keepOpen not working (fix #58689)
上级
6edaab7a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
34 addition
and
27 deletion
+34
-27
src/vs/workbench/browser/parts/notifications/notificationsViewer.ts
...kbench/browser/parts/notifications/notificationsViewer.ts
+5
-3
src/vs/workbench/common/notifications.ts
src/vs/workbench/common/notifications.ts
+26
-1
src/vs/workbench/services/extensions/electron-browser/extensionService.ts
.../services/extensions/electron-browser/extensionService.ts
+0
-4
src/vs/workbench/services/notification/common/notificationService.ts
...bench/services/notification/common/notificationService.ts
+3
-19
未找到文件。
src/vs/workbench/browser/parts/notifications/notificationsViewer.ts
浏览文件 @
4302deb9
...
...
@@ -20,7 +20,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
IContextMenuService
}
from
'
vs/platform/contextview/browser/contextView
'
;
import
{
DropdownMenuActionItem
}
from
'
vs/base/browser/ui/dropdown/dropdown
'
;
import
{
INotificationViewItem
,
NotificationViewItem
,
NotificationViewItemLabelKind
,
INotificationMessage
}
from
'
vs/workbench/common/notifications
'
;
import
{
INotificationViewItem
,
NotificationViewItem
,
NotificationViewItemLabelKind
,
INotificationMessage
,
ChoiceAction
}
from
'
vs/workbench/common/notifications
'
;
import
{
ClearNotificationAction
,
ExpandNotificationAction
,
CollapseNotificationAction
,
ConfigureNotificationAction
}
from
'
vs/workbench/browser/parts/notifications/notificationsActions
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
ProgressBar
}
from
'
vs/base/browser/ui/progressbar/progressbar
'
;
...
...
@@ -449,8 +449,10 @@ export class NotificationTemplateRenderer {
// Run action
this
.
actionRunner
.
run
(
action
,
notification
);
// Hide notification
notification
.
close
();
// Hide notification (unless explicitly prevented)
if
(
!
(
action
instanceof
ChoiceAction
)
||
!
action
.
keepOpen
)
{
notification
.
close
();
}
}));
this
.
inputDisposeables
.
push
(
attachButtonStyler
(
button
,
this
.
themeService
));
...
...
src/vs/workbench/common/notifications.ts
浏览文件 @
4302deb9
...
...
@@ -5,11 +5,13 @@
'
use strict
'
;
import
{
INotification
,
INotificationHandle
,
INotificationActions
,
INotificationProgress
,
NoOpNotification
,
Severity
,
NotificationMessage
}
from
'
vs/platform/notification/common/notification
'
;
import
{
INotification
,
INotificationHandle
,
INotificationActions
,
INotificationProgress
,
NoOpNotification
,
Severity
,
NotificationMessage
,
IPromptChoice
}
from
'
vs/platform/notification/common/notification
'
;
import
{
toErrorMessage
}
from
'
vs/base/common/errorMessage
'
;
import
{
Event
,
Emitter
,
once
}
from
'
vs/base/common/event
'
;
import
{
Disposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
isPromiseCanceledError
,
isErrorWithActions
}
from
'
vs/base/common/errors
'
;
import
{
Action
}
from
'
vs/base/common/actions
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
export
interface
INotificationsModel
{
...
...
@@ -544,4 +546,27 @@ export class NotificationViewItem extends Disposable implements INotificationVie
return
true
;
}
}
export
class
ChoiceAction
extends
Action
{
private
_clicked
:
boolean
;
constructor
(
id
:
string
,
private
choice
:
IPromptChoice
)
{
super
(
id
,
choice
.
label
,
null
,
true
,
()
=>
{
this
.
_clicked
=
true
;
// Pass to runner
choice
.
run
();
return
TPromise
.
as
(
void
0
);
});
}
get
keepOpen
():
boolean
{
return
this
.
choice
.
keepOpen
;
}
get
clicked
():
boolean
{
return
this
.
_clicked
;
}
}
\ No newline at end of file
src/vs/workbench/services/extensions/electron-browser/extensionService.ts
浏览文件 @
4302deb9
...
...
@@ -423,10 +423,6 @@ export class ExtensionService extends Disposable implements IExtensionService {
this
.
_instantiationService
.
invokeFunction
((
accessor
)
=>
{
const
editorService
=
accessor
.
get
(
IEditorService
);
editorService
.
openEditor
(
this
.
_instantiationService
.
createInstance
(
RuntimeExtensionsInput
),
{
revealIfOpened
:
true
});
// keepOpen does not appear to work
setTimeout
(()
=>
{
this
.
_onResponsiveStateChanged
(
state
);
},
100
);
});
}
};
...
...
src/vs/workbench/services/notification/common/notificationService.ts
浏览文件 @
4302deb9
...
...
@@ -6,10 +6,8 @@
'
use strict
'
;
import
{
INotificationService
,
INotification
,
INotificationHandle
,
Severity
,
NotificationMessage
,
INotificationActions
,
IPromptChoice
}
from
'
vs/platform/notification/common/notification
'
;
import
{
INotificationsModel
,
NotificationsModel
}
from
'
vs/workbench/common/notifications
'
;
import
{
INotificationsModel
,
NotificationsModel
,
ChoiceAction
}
from
'
vs/workbench/common/notifications
'
;
import
{
dispose
,
Disposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
Action
}
from
'
vs/base/common/actions
'
;
import
{
once
}
from
'
vs/base/common/event
'
;
export
class
NotificationService
extends
Disposable
implements
INotificationService
{
...
...
@@ -58,25 +56,11 @@ export class NotificationService extends Disposable implements INotificationServ
prompt
(
severity
:
Severity
,
message
:
string
,
choices
:
IPromptChoice
[],
onCancel
?:
()
=>
void
):
INotificationHandle
{
let
handle
:
INotificationHandle
;
let
choiceClicked
=
false
;
// Convert choices into primary/secondary actions
const
actions
:
INotificationActions
=
{
primary
:
[],
secondary
:
[]
};
choices
.
forEach
((
choice
,
index
)
=>
{
const
action
=
new
Action
(
`workbench.dialog.choice.
${
index
}
`
,
choice
.
label
,
null
,
true
,
()
=>
{
choiceClicked
=
true
;
// Pass to runner
choice
.
run
();
// Close notification unless we are told to keep open
if
(
!
choice
.
keepOpen
)
{
handle
.
close
();
}
return
TPromise
.
as
(
void
0
);
});
const
action
=
new
ChoiceAction
(
`workbench.dialog.choice.
${
index
}
`
,
choice
);
if
(
!
choice
.
isSecondary
)
{
actions
.
primary
.
push
(
action
);
}
else
{
...
...
@@ -93,7 +77,7 @@ export class NotificationService extends Disposable implements INotificationServ
dispose
(...
actions
.
primary
,
...
actions
.
secondary
);
// Indicate cancellation to the outside if no action was executed
if
(
!
choiceClicked
&&
typeof
onCancel
===
'
function
'
)
{
if
(
typeof
onCancel
===
'
function
'
&&
!
[...
actions
.
primary
,
...
actions
.
secondary
].
some
((
action
:
ChoiceAction
)
=>
action
.
clicked
)
)
{
onCancel
();
}
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录