Skip to content

Commit e8ee2cf

Browse files
authored
Avoid List View default find widget steal keybindings. (microsoft#156637)
1 parent 743b016 commit e8ee2cf

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

src/vs/platform/list/browser/listService.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export const WorkbenchTreeElementHasParent = new RawContextKey<boolean>('treeEle
125125
export const WorkbenchTreeElementCanExpand = new RawContextKey<boolean>('treeElementCanExpand', false);
126126
export const WorkbenchTreeElementHasChild = new RawContextKey<boolean>('treeElementHasChild', false);
127127
export const WorkbenchTreeFindOpen = new RawContextKey<boolean>('treeFindOpen', false);
128+
export const WorkbenchTreeSupportsFind = new RawContextKey<boolean>('treeSupportsFind', true);
128129
const WorkbenchListTypeNavigationModeKey = 'listTypeNavigationMode';
129130

130131
/**
@@ -1143,6 +1144,7 @@ class WorkbenchTreeInternals<TInput, T, TFilterData> {
11431144
private treeElementCanExpand: IContextKey<boolean>;
11441145
private treeElementHasChild: IContextKey<boolean>;
11451146
private treeFindOpen: IContextKey<boolean>;
1147+
private treeSupportFindWidget: IContextKey<boolean>;
11461148
private _useAltAsMultipleSelectionModifier: boolean;
11471149
private disposables: IDisposable[] = [];
11481150
private styler: IDisposable | undefined;
@@ -1176,7 +1178,10 @@ class WorkbenchTreeInternals<TInput, T, TFilterData> {
11761178
this.treeElementHasParent = WorkbenchTreeElementHasParent.bindTo(this.contextKeyService);
11771179
this.treeElementCanExpand = WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService);
11781180
this.treeElementHasChild = WorkbenchTreeElementHasChild.bindTo(this.contextKeyService);
1181+
11791182
this.treeFindOpen = WorkbenchTreeFindOpen.bindTo(this.contextKeyService);
1183+
this.treeSupportFindWidget = WorkbenchTreeSupportsFind.bindTo(this.contextKeyService);
1184+
this.treeSupportFindWidget.set(options.findWidgetEnabled ?? true);
11801185

11811186
this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);
11821187

src/vs/workbench/browser/actions/listCommands.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { KeyMod, KeyCode } from 'vs/base/common/keyCodes';
77
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
88
import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
99
import { List } from 'vs/base/browser/ui/list/listWidget';
10-
import { WorkbenchListFocusContextKey, IListService, WorkbenchListSupportsMultiSelectContextKey, ListWidget, WorkbenchListHasSelectionOrFocus, getSelectionKeyboardEvent, WorkbenchListWidget, WorkbenchListSelectionNavigation, WorkbenchTreeElementCanCollapse, WorkbenchTreeElementHasParent, WorkbenchTreeElementHasChild, WorkbenchTreeElementCanExpand, RawWorkbenchListFocusContextKey, WorkbenchTreeFindOpen } from 'vs/platform/list/browser/listService';
10+
import { WorkbenchListFocusContextKey, IListService, WorkbenchListSupportsMultiSelectContextKey, ListWidget, WorkbenchListHasSelectionOrFocus, getSelectionKeyboardEvent, WorkbenchListWidget, WorkbenchListSelectionNavigation, WorkbenchTreeElementCanCollapse, WorkbenchTreeElementHasParent, WorkbenchTreeElementHasChild, WorkbenchTreeElementCanExpand, RawWorkbenchListFocusContextKey, WorkbenchTreeFindOpen, WorkbenchTreeSupportsFind } from 'vs/platform/list/browser/listService';
1111
import { PagedList } from 'vs/base/browser/ui/list/listPaging';
1212
import { equals, range } from 'vs/base/common/arrays';
1313
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
@@ -634,7 +634,7 @@ CommandsRegistry.registerCommandAlias('list.toggleFilterOnType', 'list.toggleFin
634634
KeybindingsRegistry.registerCommandAndKeybindingRule({
635635
id: 'list.find',
636636
weight: KeybindingWeight.WorkbenchContrib,
637-
when: RawWorkbenchListFocusContextKey,
637+
when: ContextKeyExpr.and(RawWorkbenchListFocusContextKey, WorkbenchTreeSupportsFind),
638638
primary: KeyMod.CtrlCmd | KeyCode.KeyF,
639639
secondary: [KeyCode.F3],
640640
handler: (accessor) => {

src/vs/workbench/contrib/preferences/browser/settingsTree.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2367,6 +2367,7 @@ export class SettingsTree extends WorkbenchObjectTree<SettingsTreeElement> {
23672367
filter: instantiationService.createInstance(SettingsTreeFilter, viewState),
23682368
smoothScrolling: configurationService.getValue<boolean>('workbench.list.smoothScrolling'),
23692369
multipleSelectionSupport: false,
2370+
findWidgetEnabled: false
23702371
},
23712372
instantiationService,
23722373
contextKeyService,

0 commit comments

Comments
 (0)