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

fixes #53240

上级 856eeead
...@@ -102,11 +102,6 @@ export const WorkbenchListMultiSelection = new RawContextKey<boolean>('listMulti ...@@ -102,11 +102,6 @@ export const WorkbenchListMultiSelection = new RawContextKey<boolean>('listMulti
function createScopedContextKeyService(contextKeyService: IContextKeyService, widget: ListWidget): IContextKeyService { function createScopedContextKeyService(contextKeyService: IContextKeyService, widget: ListWidget): IContextKeyService {
const result = contextKeyService.createScoped(widget.getHTMLElement()); const result = contextKeyService.createScoped(widget.getHTMLElement());
if (widget instanceof List || widget instanceof PagedList) {
WorkbenchListSupportsMultiSelectContextKey.bindTo(result);
}
RawWorkbenchListFocusContextKey.bindTo(result); RawWorkbenchListFocusContextKey.bindTo(result);
return result; return result;
} }
...@@ -233,6 +228,10 @@ export class WorkbenchList<T> extends List<T> { ...@@ -233,6 +228,10 @@ export class WorkbenchList<T> extends List<T> {
); );
this.contextKeyService = createScopedContextKeyService(contextKeyService, this); this.contextKeyService = createScopedContextKeyService(contextKeyService, this);
const listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);
listSupportsMultiSelect.set(!(options.multipleSelectionSupport === false));
this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService); this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);
this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService); this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);
this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService); this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);
...@@ -305,6 +304,9 @@ export class WorkbenchPagedList<T> extends PagedList<T> { ...@@ -305,6 +304,9 @@ export class WorkbenchPagedList<T> extends PagedList<T> {
this.contextKeyService = createScopedContextKeyService(contextKeyService, this); this.contextKeyService = createScopedContextKeyService(contextKeyService, this);
const listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);
listSupportsMultiSelect.set(!(options.multipleSelectionSupport === false));
this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService); this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);
this.disposables.push(combinedDisposable([ this.disposables.push(combinedDisposable([
...@@ -371,6 +373,9 @@ export class WorkbenchTree extends Tree { ...@@ -371,6 +373,9 @@ export class WorkbenchTree extends Tree {
this.disposables = []; this.disposables = [];
this.contextKeyService = createScopedContextKeyService(contextKeyService, this); this.contextKeyService = createScopedContextKeyService(contextKeyService, this);
WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);
this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService); this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);
this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService); this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);
this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService); this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);
......
...@@ -105,7 +105,7 @@ export function registerCommands(): void { ...@@ -105,7 +105,7 @@ export function registerCommands(): void {
KeybindingsRegistry.registerCommandAndKeybindingRule({ KeybindingsRegistry.registerCommandAndKeybindingRule({
id: 'list.expandSelectionDown', id: 'list.expandSelectionDown',
weight: KeybindingsRegistry.WEIGHT.workbenchContrib(), weight: KeybindingsRegistry.WEIGHT.workbenchContrib(),
when: WorkbenchListFocusContextKey, when: ContextKeyExpr.and(WorkbenchListFocusContextKey, WorkbenchListSupportsMultiSelectContextKey),
primary: KeyMod.Shift | KeyCode.DownArrow, primary: KeyMod.Shift | KeyCode.DownArrow,
handler: (accessor, arg2) => { handler: (accessor, arg2) => {
const focused = accessor.get(IListService).lastFocusedList; const focused = accessor.get(IListService).lastFocusedList;
...@@ -178,7 +178,7 @@ export function registerCommands(): void { ...@@ -178,7 +178,7 @@ export function registerCommands(): void {
KeybindingsRegistry.registerCommandAndKeybindingRule({ KeybindingsRegistry.registerCommandAndKeybindingRule({
id: 'list.expandSelectionUp', id: 'list.expandSelectionUp',
weight: KeybindingsRegistry.WEIGHT.workbenchContrib(), weight: KeybindingsRegistry.WEIGHT.workbenchContrib(),
when: WorkbenchListFocusContextKey, when: ContextKeyExpr.and(WorkbenchListFocusContextKey, WorkbenchListSupportsMultiSelectContextKey),
primary: KeyMod.Shift | KeyCode.UpArrow, primary: KeyMod.Shift | KeyCode.UpArrow,
handler: (accessor, arg2) => { handler: (accessor, arg2) => {
const focused = accessor.get(IListService).lastFocusedList; const focused = accessor.get(IListService).lastFocusedList;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册