Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
9fd249ad
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,发现更多精彩内容 >>
未验证
提交
9fd249ad
编写于
3月 27, 2019
作者:
R
Rob Lourens
提交者:
GitHub
3月 27, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #71292 from Microsoft:joao/fix-68385
Stop the Settings tree from jittering
上级
52ec0608
58a4260a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
26 addition
and
1 deletion
+26
-1
src/vs/base/browser/ui/list/list.ts
src/vs/base/browser/ui/list/list.ts
+1
-0
src/vs/base/browser/ui/list/listView.ts
src/vs/base/browser/ui/list/listView.ts
+5
-0
src/vs/base/browser/ui/tree/abstractTree.ts
src/vs/base/browser/ui/tree/abstractTree.ts
+6
-0
src/vs/workbench/contrib/preferences/browser/settingsTree.ts
src/vs/workbench/contrib/preferences/browser/settingsTree.ts
+14
-1
未找到文件。
src/vs/base/browser/ui/list/list.ts
浏览文件 @
9fd249ad
...
...
@@ -11,6 +11,7 @@ export interface IListVirtualDelegate<T> {
getHeight
(
element
:
T
):
number
;
getTemplateId
(
element
:
T
):
string
;
hasDynamicHeight
?(
element
:
T
):
boolean
;
setDynamicHeight
?(
element
:
T
,
height
:
number
):
void
;
}
export
interface
IListRenderer
<
T
,
TTemplateData
>
{
...
...
src/vs/base/browser/ui/list/listView.ts
浏览文件 @
9fd249ad
...
...
@@ -1096,6 +1096,11 @@ export class ListView<T> implements ISpliceable<T>, IDisposable {
}
item
.
size
=
row
.
domNode
!
.
offsetHeight
;
if
(
this
.
virtualDelegate
.
setDynamicHeight
)
{
this
.
virtualDelegate
.
setDynamicHeight
(
item
.
element
,
item
.
size
);
}
item
.
lastDynamicHeightWidth
=
this
.
renderWidth
;
this
.
rowsContainer
.
removeChild
(
row
.
domNode
!
);
this
.
cache
.
release
(
row
);
...
...
src/vs/base/browser/ui/tree/abstractTree.ts
浏览文件 @
9fd249ad
...
...
@@ -178,6 +178,12 @@ export class ComposedTreeDelegate<T, N extends { element: T }> implements IListV
hasDynamicHeight
(
element
:
N
):
boolean
{
return
!!
this
.
delegate
.
hasDynamicHeight
&&
this
.
delegate
.
hasDynamicHeight
(
element
.
element
);
}
setDynamicHeight
(
element
:
N
,
height
:
number
):
void
{
if
(
this
.
delegate
.
setDynamicHeight
)
{
this
.
delegate
.
setDynamicHeight
(
element
.
element
,
height
);
}
}
}
interface
ITreeListTemplateData
<
T
>
{
...
...
src/vs/workbench/contrib/preferences/browser/settingsTree.ts
浏览文件 @
9fd249ad
...
...
@@ -1220,7 +1220,16 @@ export class SettingsTreeFilter implements ITreeFilter<SettingsTreeElement> {
}
class
SettingsTreeDelegate
implements
IListVirtualDelegate
<
SettingsTreeGroupChild
>
{
getHeight
(
element
:
SettingsTreeElement
):
number
{
private
heightCache
=
new
WeakMap
<
SettingsTreeGroupChild
,
number
>
();
getHeight
(
element
:
SettingsTreeGroupChild
):
number
{
const
cachedHeight
=
this
.
heightCache
.
get
(
element
);
if
(
typeof
cachedHeight
===
'
number
'
)
{
return
cachedHeight
;
}
if
(
element
instanceof
SettingsTreeGroupElement
)
{
if
(
element
.
isFirstGroup
)
{
return
31
;
...
...
@@ -1273,6 +1282,10 @@ class SettingsTreeDelegate implements IListVirtualDelegate<SettingsTreeGroupChil
hasDynamicHeight
(
element
:
SettingsTreeGroupElement
|
SettingsTreeSettingElement
|
SettingsTreeNewExtensionsElement
):
boolean
{
return
!
(
element
instanceof
SettingsTreeGroupElement
);
}
setDynamicHeight
(
element
:
SettingsTreeGroupChild
,
height
:
number
):
void
{
this
.
heightCache
.
set
(
element
,
height
);
}
}
class
NonCollapsibleObjectTreeModel
<
T
>
extends
ObjectTreeModel
<
T
>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录