Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
f039aed0
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
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,发现更多精彩内容 >>
提交
f039aed0
编写于
6月 21, 2018
作者:
I
Ian Sanders
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add and implement check if dragged item can be dropped on open editor
上级
5add9cee
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
5 deletion
+31
-5
src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts
...nch/parts/files/electron-browser/views/openEditorsView.ts
+31
-5
未找到文件。
src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts
浏览文件 @
f039aed0
...
...
@@ -37,7 +37,7 @@ import { fillInContextMenuActions } from 'vs/platform/actions/browser/menuItemAc
import
{
IMenuService
,
MenuId
,
IMenu
}
from
'
vs/platform/actions/common/actions
'
;
import
{
DirtyEditorContext
,
OpenEditorsGroupContext
}
from
'
vs/workbench/parts/files/electron-browser/fileCommands
'
;
import
{
ResourceContextKey
}
from
'
vs/workbench/common/resources
'
;
import
{
fillResourceDataTransfers
,
ResourcesDropHandler
,
LocalSelectionTransfer
}
from
'
vs/workbench/browser/dnd
'
;
import
{
fillResourceDataTransfers
,
ResourcesDropHandler
,
LocalSelectionTransfer
,
CodeDataTransfers
}
from
'
vs/workbench/browser/dnd
'
;
import
{
ViewletPanel
,
IViewletPanelOptions
}
from
'
vs/workbench/browser/parts/views/panelViewlet
'
;
import
{
IViewletViewOptions
}
from
'
vs/workbench/browser/parts/views/viewsViewlet
'
;
...
...
@@ -506,6 +506,32 @@ class OpenEditorsDelegate implements IDelegate<OpenEditor | IEditorGroup> {
}
}
/**
* Check if the item being dragged is one of the supported types that can be dropped on an
* open editor or editor group. Fixes https://github.com/Microsoft/vscode/issues/52344.
* @param e
* @returns true if dropping is supported.
*/
function
dropOnEditorSupported
(
e
:
DragEvent
):
boolean
{
// DataTransfer types are automatically converted to lower case, except Files.
const
supportedTransferTypes
=
{
openEditor
:
CodeDataTransfers
.
EDITORS
.
toLowerCase
(),
externalFile
:
'
Files
'
,
codeFile
:
CodeDataTransfers
.
FILES
.
toLowerCase
()
};
if
(
e
.
dataTransfer
.
types
.
indexOf
(
supportedTransferTypes
.
openEditor
)
!==
-
1
||
e
.
dataTransfer
.
types
.
indexOf
(
supportedTransferTypes
.
externalFile
)
!==
-
1
||
// All Code files should already register as normal files, but just to be safe:
e
.
dataTransfer
.
types
.
indexOf
(
supportedTransferTypes
.
codeFile
)
!==
-
1
)
{
return
true
;
}
else
{
return
false
;
}
}
class
EditorGroupRenderer
implements
IRenderer
<
IEditorGroup
,
IEditorGroupTemplateData
>
{
static
readonly
ID
=
'
editorgroup
'
;
...
...
@@ -538,8 +564,8 @@ class EditorGroupRenderer implements IRenderer<IEditorGroup, IEditorGroupTemplat
editorGroupTemplate
.
actionBar
.
push
(
closeGroupAction
,
{
icon
:
true
,
label
:
false
,
keybinding
:
closeGroupActionKey
?
closeGroupActionKey
.
getLabel
()
:
void
0
});
editorGroupTemplate
.
toDispose
=
[];
editorGroupTemplate
.
toDispose
.
push
(
dom
.
addDisposableListener
(
container
,
dom
.
EventType
.
DRAG_OVER
,
()
=>
{
if
(
this
.
transfer
.
hasData
(
OpenEditor
.
prototyp
e
))
{
editorGroupTemplate
.
toDispose
.
push
(
dom
.
addDisposableListener
(
container
,
dom
.
EventType
.
DRAG_OVER
,
(
e
:
DragEvent
)
=>
{
if
(
dropOnEditorSupported
(
e
))
{
dom
.
addClass
(
container
,
'
focused
'
);
}
}));
...
...
@@ -626,8 +652,8 @@ class OpenEditorRenderer implements IRenderer<OpenEditor, IOpenEditorTemplateDat
this
.
instantiationService
.
invokeFunction
(
fillResourceDataTransfers
,
dragged
.
map
(
d
=>
d
.
getResource
()),
e
);
}
}));
editorTemplate
.
toDispose
.
push
(
dom
.
addDisposableListener
(
container
,
dom
.
EventType
.
DRAG_OVER
,
()
=>
{
if
(
this
.
transfer
.
hasData
(
OpenEditor
.
prototyp
e
))
{
editorTemplate
.
toDispose
.
push
(
dom
.
addDisposableListener
(
container
,
dom
.
EventType
.
DRAG_OVER
,
(
e
:
DragEvent
)
=>
{
if
(
dropOnEditorSupported
(
e
))
{
dom
.
addClass
(
container
,
'
focused
'
);
}
}));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录