Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
50c9a782
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
50c9a782
编写于
4月 20, 2019
作者:
S
SteVen Batten
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixes #72574
上级
fbbc1aa8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
1 deletion
+22
-1
src/vs/base/browser/ui/dialog/dialog.ts
src/vs/base/browser/ui/dialog/dialog.ts
+22
-1
未找到文件。
src/vs/base/browser/ui/dialog/dialog.ts
浏览文件 @
50c9a782
...
...
@@ -6,7 +6,7 @@
import
'
vs/css!./dialog
'
;
import
*
as
nls
from
'
vs/nls
'
;
import
{
Disposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
$
,
hide
,
show
,
EventHelper
,
clearNode
,
removeClasses
,
addClass
,
removeNode
}
from
'
vs/base/browser/dom
'
;
import
{
$
,
hide
,
show
,
EventHelper
,
clearNode
,
removeClasses
,
addClass
,
removeNode
,
isAncestor
}
from
'
vs/base/browser/dom
'
;
import
{
domEvent
}
from
'
vs/base/browser/event
'
;
import
{
StandardKeyboardEvent
}
from
'
vs/base/browser/keyboardEvent
'
;
import
{
KeyCode
,
KeyMod
}
from
'
vs/base/common/keyCodes
'
;
...
...
@@ -39,6 +39,7 @@ export class Dialog extends Disposable {
private
toolbarContainer
:
HTMLElement
|
undefined
;
private
buttonGroup
:
ButtonGroup
|
undefined
;
private
styles
:
IDialogStyles
|
undefined
;
private
focusToReturn
:
HTMLElement
|
undefined
;
constructor
(
private
container
:
HTMLElement
,
private
message
:
string
,
private
buttons
:
string
[],
private
options
:
IDialogOptions
)
{
super
();
...
...
@@ -72,6 +73,8 @@ export class Dialog extends Disposable {
}
async
show
():
Promise
<
number
>
{
this
.
focusToReturn
=
document
.
activeElement
as
HTMLElement
;
return
new
Promise
<
number
>
((
resolve
)
=>
{
if
(
!
this
.
element
||
!
this
.
buttonsContainer
||
!
this
.
iconElement
||
!
this
.
toolbarContainer
)
{
resolve
(
0
);
...
...
@@ -135,6 +138,19 @@ export class Dialog extends Disposable {
}
}));
this
.
_register
(
domEvent
(
this
.
element
,
'
focusout
'
,
false
)((
e
:
FocusEvent
)
=>
{
if
(
!!
e
.
relatedTarget
&&
!!
this
.
element
)
{
if
(
!
isAncestor
(
e
.
relatedTarget
as
HTMLElement
,
this
.
element
))
{
this
.
focusToReturn
=
e
.
relatedTarget
as
HTMLElement
;
if
(
e
.
target
)
{
(
e
.
target
as
HTMLElement
).
focus
();
EventHelper
.
stop
(
e
,
true
);
}
}
}
}));
removeClasses
(
this
.
iconElement
,
'
icon-error
'
,
'
icon-warning
'
,
'
icon-info
'
);
switch
(
this
.
options
.
type
)
{
...
...
@@ -206,5 +222,10 @@ export class Dialog extends Disposable {
removeNode
(
this
.
modal
);
this
.
modal
=
undefined
;
}
if
(
this
.
focusToReturn
&&
isAncestor
(
this
.
focusToReturn
,
document
.
body
))
{
this
.
focusToReturn
.
focus
();
this
.
focusToReturn
=
undefined
;
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录