提交 f25cde13 编写于 作者: J Joao Moreno

markers tree: pinned

上级 9a0a525f
......@@ -199,15 +199,19 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
this.onDidChangeCollapseState = this.model.onDidChangeCollapseState;
this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount;
this.view.onMouseClick(this.onMouseClick, this, this.disposables);
if (options.mouseSupport !== false) {
this.view.onMouseClick(this.onMouseClick, this, this.disposables);
}
const onKeyDown = chain(this.view.onKeyDown)
.filter(e => !isInputElement(e.target as HTMLElement))
.map(e => new StandardKeyboardEvent(e));
if (options.keyboardSupport !== false) {
const onKeyDown = chain(this.view.onKeyDown)
.filter(e => !isInputElement(e.target as HTMLElement))
.map(e => new StandardKeyboardEvent(e));
onKeyDown.filter(e => e.keyCode === KeyCode.LeftArrow).on(this.onLeftArrow, this, this.disposables);
onKeyDown.filter(e => e.keyCode === KeyCode.RightArrow).on(this.onRightArrow, this, this.disposables);
onKeyDown.filter(e => e.keyCode === KeyCode.Space).on(this.onSpace, this, this.disposables);
onKeyDown.filter(e => e.keyCode === KeyCode.LeftArrow).on(this.onLeftArrow, this, this.disposables);
onKeyDown.filter(e => e.keyCode === KeyCode.RightArrow).on(this.onRightArrow, this, this.disposables);
onKeyDown.filter(e => e.keyCode === KeyCode.Space).on(this.onSpace, this, this.disposables);
}
}
// Widget
......
......@@ -596,50 +596,35 @@ export class ObjectTreeResourceNavigator<T, TFilterData> extends Disposable {
private onFocus(e: ITreeEvent<T, TFilterData>): void {
const focus = this.tree.getFocus();
this.tree.setSelection(focus, e.browserEvent);
const isMouseEvent = e.browserEvent instanceof MouseEvent;
const isDoubleClick = isMouseEvent && e.browserEvent && e.browserEvent.detail === 2;
const isMouseEvent = e.browserEvent && e.browserEvent instanceof MouseEvent;
if (!isMouseEvent || this.tree.openOnSingleClick || isDoubleClick) {
this._openResource.fire({
editorOptions: {
preserveFocus: true,
pinned: false,
revealIfVisible: true
},
sideBySide: false,
element: focus[0]
});
if (!isMouseEvent) {
this.open(true, false, false);
}
}
private onSelection(e: ITreeEvent<T, TFilterData>): void {
const isMouseEvent = e.browserEvent && e.browserEvent instanceof MouseEvent;
if (!isMouseEvent || this.tree.openOnSingleClick) {
if (!e.browserEvent) {
return;
}
const isDoubleClick = isMouseEvent && e.browserEvent && e.browserEvent.detail === 2;
if (!isMouseEvent || this.tree.openOnSingleClick || isDoubleClick) {
if (isDoubleClick && e.browserEvent) {
e.browserEvent.preventDefault(); // focus moves to editor, we need to prevent default
}
const sideBySide = e.browserEvent && e.browserEvent instanceof KeyboardEvent && (e.browserEvent.ctrlKey || e.browserEvent.metaKey || e.browserEvent.altKey);
const isDoubleClick = e.browserEvent instanceof MouseEvent && e.browserEvent.detail === 2;
const sideBySide = e.browserEvent instanceof KeyboardEvent && (e.browserEvent.ctrlKey || e.browserEvent.metaKey || e.browserEvent.altKey);
this.open(!isDoubleClick, isDoubleClick, sideBySide);
}
this._openResource.fire({
editorOptions: {
preserveFocus: isDoubleClick,
pinned: isDoubleClick,
revealIfVisible: true
},
sideBySide,
element: this.tree.getSelection()[0]
});
}
private open(preserveFocus: boolean, pinned: boolean, sideBySide: boolean): void {
this._openResource.fire({
editorOptions: {
preserveFocus,
pinned,
revealIfVisible: true
},
sideBySide,
element: this.tree.getSelection()[0]
});
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册