Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
f39ca65c
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,发现更多精彩内容 >>
提交
f39ca65c
编写于
5月 13, 2016
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Dispose terminal scrollbar and event listeners
上级
55541cc5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
6 deletion
+16
-6
src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts
...orkbench/parts/terminal/electron-browser/terminalPanel.ts
+16
-6
未找到文件。
src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts
浏览文件 @
f39ca65c
...
...
@@ -4,7 +4,9 @@
*--------------------------------------------------------------------------------------------*/
import
termJs
=
require
(
'
term.js
'
);
import
lifecycle
=
require
(
'
vs/base/common/lifecycle
'
);
import
fs
=
require
(
'
fs
'
);
import
DOM
=
require
(
'
vs/base/browser/dom
'
);
import
{
fork
,
Terminal
}
from
'
pty.js
'
;
import
platform
=
require
(
'
vs/base/common/platform
'
);
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
...
...
@@ -22,6 +24,7 @@ const TERMINAL_CHAR_HEIGHT = 18;
export
class
TerminalPanel
extends
Panel
{
private
toDispose
:
lifecycle
.
IDisposable
[];
private
ptyProcess
:
Terminal
;
private
parentDomElement
:
HTMLElement
;
private
terminal
;
...
...
@@ -33,6 +36,7 @@ export class TerminalPanel extends Panel {
@
IWorkspaceContextService
private
contextService
:
IWorkspaceContextService
)
{
super
(
TERMINAL_PANEL_ID
,
telemetryService
);
this
.
toDispose
=
[];
}
public
layout
(
dimension
:
Dimension
):
void
{
...
...
@@ -59,11 +63,12 @@ export class TerminalPanel extends Panel {
});
this
.
terminalDomElement
=
document
.
createElement
(
'
div
'
);
this
.
parentDomElement
.
classList
.
add
(
'
integrated-terminal
'
);
let
terminalScroll
able
=
new
DomScrollableElement
(
this
.
terminalDomElement
,
{
let
terminalScroll
bar
=
new
DomScrollableElement
(
this
.
terminalDomElement
,
{
canUseTranslate3d
:
false
,
horizontal
:
ScrollbarVisibility
.
Hidden
,
vertical
:
ScrollbarVisibility
.
Auto
});
this
.
toDispose
.
push
(
terminalScrollbar
);
this
.
terminal
=
termJs
({
cursorBlink
:
false
// term.js' blinking cursor breaks selection
});
...
...
@@ -82,21 +87,21 @@ export class TerminalPanel extends Panel {
// repaint correctly.
this
.
createTerminal
();
});
this
.
parentDomElement
.
addEventListener
(
'
mousedown
'
,
(
event
)
=>
{
this
.
toDispose
.
push
(
DOM
.
addDisposableListener
(
this
.
parentDomElement
,
'
mousedown
'
,
(
event
)
=>
{
// Drop selection and focus terminal on Linux to enable middle button paste when click
// occurs on the selection itself.
if
(
event
.
which
===
2
&&
platform
.
isLinux
)
{
this
.
focusTerminal
(
true
);
}
});
this
.
parentDomElement
.
addEventListener
(
'
mouseup
'
,
(
event
)
=>
{
})
)
;
this
.
toDispose
.
push
(
DOM
.
addDisposableListener
(
this
.
parentDomElement
,
'
mouseup
'
,
(
event
)
=>
{
if
(
event
.
which
!==
3
)
{
this
.
focusTerminal
();
}
});
})
)
;
this
.
terminal
.
open
(
this
.
terminalDomElement
);
this
.
parentDomElement
.
appendChild
(
terminalScroll
able
.
getDomNode
());
this
.
parentDomElement
.
appendChild
(
terminalScroll
bar
.
getDomNode
());
let
config
=
this
.
configurationService
.
getConfiguration
<
ITerminalConfiguration
>
();
this
.
terminalDomElement
.
style
.
fontFamily
=
config
.
integratedTerminal
.
fontFamily
;
...
...
@@ -145,4 +150,9 @@ export class TerminalPanel extends Panel {
];
return
colors
;
}
public
dispose
():
void
{
this
.
toDispose
=
lifecycle
.
dispose
(
this
.
toDispose
);
super
.
dispose
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录