Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
186a9a5e
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,发现更多精彩内容 >>
提交
186a9a5e
编写于
5月 10, 2017
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes #6478: Cancel drag-select or drag-and-drop if a non modifier key is pressed
上级
79e83a09
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
30 addition
and
16 deletion
+30
-16
src/vs/editor/browser/controller/mouseHandler.ts
src/vs/editor/browser/controller/mouseHandler.ts
+11
-15
src/vs/editor/browser/editorDom.ts
src/vs/editor/browser/editorDom.ts
+19
-1
未找到文件。
src/vs/editor/browser/controller/mouseHandler.ts
浏览文件 @
186a9a5e
...
...
@@ -265,20 +265,18 @@ export class MouseHandler extends ViewEventHandler {
class
MouseDownOperation
extends
Disposable
{
private
_context
:
ViewContext
;
private
_viewController
:
ViewController
;
private
_viewHelper
:
IPointerHandlerHelper
;
private
_createMouseTarget
:
(
e
:
EditorMouseEvent
,
testEventTarget
:
boolean
)
=>
editorBrowser
.
IMouseTarget
;
private
_getMouseColumn
:
(
e
:
EditorMouseEvent
)
=>
number
;
private
readonly
_context
:
ViewContext
;
private
readonly
_viewController
:
ViewController
;
private
readonly
_viewHelper
:
IPointerHandlerHelper
;
private
readonly
_createMouseTarget
:
(
e
:
EditorMouseEvent
,
testEventTarget
:
boolean
)
=>
editorBrowser
.
IMouseTarget
;
private
readonly
_getMouseColumn
:
(
e
:
EditorMouseEvent
)
=>
number
;
private
_mouseMoveMonitor
:
GlobalEditorMouseMoveMonitor
;
private
readonly
_mouseMoveMonitor
:
GlobalEditorMouseMoveMonitor
;
private
readonly
_onScrollTimeout
:
TimeoutTimer
;
private
readonly
_mouseState
:
MouseDownState
;
private
_currentSelection
:
Selection
;
private
_mouseState
:
MouseDownState
;
private
_onScrollTimeout
:
TimeoutTimer
;
private
_isActive
:
boolean
;
private
_lastMouseEvent
:
EditorMouseEvent
;
constructor
(
...
...
@@ -295,15 +293,13 @@ class MouseDownOperation extends Disposable {
this
.
_createMouseTarget
=
createMouseTarget
;
this
.
_getMouseColumn
=
getMouseColumn
;
this
.
_currentSelection
=
new
Selection
(
1
,
1
,
1
,
1
);
this
.
_mouseMoveMonitor
=
this
.
_register
(
new
GlobalEditorMouseMoveMonitor
(
this
.
_viewHelper
.
viewDomNode
));
this
.
_onScrollTimeout
=
this
.
_register
(
new
TimeoutTimer
());
this
.
_mouseState
=
new
MouseDownState
();
this
.
_
onScrollTimeout
=
this
.
_register
(
new
TimeoutTimer
()
);
this
.
_
currentSelection
=
new
Selection
(
1
,
1
,
1
,
1
);
this
.
_isActive
=
false
;
this
.
_lastMouseEvent
=
null
;
this
.
_mouseMoveMonitor
=
this
.
_register
(
new
GlobalEditorMouseMoveMonitor
(
this
.
_viewHelper
.
viewDomNode
));
}
public
dispose
():
void
{
...
...
src/vs/editor/browser/editorDom.ts
浏览文件 @
186a9a5e
...
...
@@ -146,17 +146,35 @@ export class GlobalEditorMouseMoveMonitor extends Disposable {
private
_editorViewDomNode
:
HTMLElement
;
private
_globalMouseMoveMonitor
:
GlobalMouseMoveMonitor
<
EditorMouseEvent
>
;
private
_keydownListener
:
IDisposable
;
constructor
(
editorViewDomNode
:
HTMLElement
)
{
super
();
this
.
_editorViewDomNode
=
editorViewDomNode
;
this
.
_globalMouseMoveMonitor
=
this
.
_register
(
new
GlobalMouseMoveMonitor
<
EditorMouseEvent
>
());
this
.
_keydownListener
=
null
;
}
public
startMonitoring
(
merger
:
EditorMouseEventMerger
,
mouseMoveCallback
:
(
e
:
EditorMouseEvent
)
=>
void
,
onStopCallback
:
()
=>
void
):
void
{
// Add a <<capture>> keydown event listener that will cancel the monitoring
// if something other than a modifier key is pressed
this
.
_keydownListener
=
dom
.
addStandardDisposableListener
(
<
any
>
document
,
'
keydown
'
,
(
e
)
=>
{
const
kb
=
e
.
toKeybinding
();
if
(
kb
.
isModifierKey
())
{
// Allow modifier keys
return
;
}
this
.
_globalMouseMoveMonitor
.
stopMonitoring
(
true
);
},
true
);
let
myMerger
:
dom
.
IEventMerger
<
EditorMouseEvent
>
=
(
lastEvent
:
EditorMouseEvent
,
currentEvent
:
MouseEvent
):
EditorMouseEvent
=>
{
return
merger
(
lastEvent
,
new
EditorMouseEvent
(
currentEvent
,
this
.
_editorViewDomNode
));
};
this
.
_globalMouseMoveMonitor
.
startMonitoring
(
myMerger
,
mouseMoveCallback
,
onStopCallback
);
this
.
_globalMouseMoveMonitor
.
startMonitoring
(
myMerger
,
mouseMoveCallback
,
()
=>
{
this
.
_keydownListener
.
dispose
();
onStopCallback
();
});
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录