Skip to content

Commit

Permalink
https://github.com/microsoft/vscode/pull/117862
Browse files Browse the repository at this point in the history
  • Loading branch information
usr-org committed Feb 4, 2023
1 parent e2816fe commit 5a61e09
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/vs/base/parts/quickinput/browser/quickInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ export interface IQuickInputOptions {
idPrefix: string;
container: HTMLElement;
ignoreFocusOut(): boolean;
maximumWidth(): number;
relativeWidth(): number;
isScreenReaderOptimized(): boolean;
backKeybindingLabel(): string | undefined;
setContextKey(id?: string): void;
Expand Down Expand Up @@ -1215,7 +1217,7 @@ class InputBox extends QuickInput implements IInputBox {
}

export class QuickInputController extends Disposable {
private static readonly MAX_WIDTH = 600; // Max total width of quick input widget
//private static readonly MAX_WIDTH = 600; // Max total width of quick input widget

private idPrefix: string;
private ui: QuickInputUI | undefined;
Expand Down Expand Up @@ -1813,7 +1815,8 @@ export class QuickInputController extends Disposable {
this.ui.container.style.top = `${this.titleBarOffset}px`;

const style = this.ui.container.style;
const width = Math.min(this.dimension!.width * 0.62 /* golden cut */, QuickInputController.MAX_WIDTH);
//const width = Math.min(this.dimension!.width * 0.62 /* golden cut */, QuickInputController.MAX_WIDTH);
const width = Math.min(this.dimension!.width * this.options.relativeWidth(), this.options.maximumWidth());
style.width = width + 'px';

this.ui.inputBox.layout();
Expand Down
2 changes: 2 additions & 0 deletions src/vs/platform/quickinput/browser/quickInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ export class QuickInputService extends Themable implements IQuickInputService {
idPrefix: 'quickInput_', // Constant since there is still only one.
container: host.container,
ignoreFocusOut: () => false,
maximumWidth: () => 600,
relativeWidth: () => 0.62,
isScreenReaderOptimized: () => this.accessibilityService.isScreenReaderOptimized(),
backKeybindingLabel: () => undefined,
setContextKey: (id?: string) => this.setContextKey(id),
Expand Down
14 changes: 14 additions & 0 deletions src/vs/workbench/browser/workbench.contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,20 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
'description': localize('workbench.quickOpen.preserveInput', "Controls whether the last typed input to Quick Open should be restored when opening it the next time."),
'default': false
},
'workbench.quickOpen.maximumWidth': {
'type': 'number',
'description': localize('workbench.quickOpen.maxWidth', "Limits the maximum width of the quick open widget to the specified number of pixels."),
'default': 600,
'minimum': 200,
'maximum': 2000
},
'workbench.quickOpen.relativeWidth': {
'type': 'number',
'description': localize('workbench.quickOpen.relativeWidth', "Controls the width of the quick open widget relative to the total window width."),
'default': 0.62,
'minimum': 0.1,
'maximum': 1.0
},
'workbench.settings.openDefaultSettings': {
'type': 'boolean',
'description': localize('openDefaultSettings', "Controls whether opening settings also opens an editor showing all default settings."),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ export class QuickInputService extends BaseQuickInputService {

protected override createController(): QuickInputController {
return super.createController(this.layoutService, {
maximumWidth: () => this.configurationService.getValue('workbench.quickOpen.maximumWidth'),
relativeWidth: () => this.configurationService.getValue('workbench.quickOpen.relativeWidth'),
ignoreFocusOut: () => !this.configurationService.getValue('workbench.quickOpen.closeOnFocusLost'),
backKeybindingLabel: () => this.keybindingService.lookupKeybinding('workbench.action.quickInputBack')?.getLabel() || undefined
});
Expand Down

0 comments on commit 5a61e09

Please sign in to comment.