@@ -7,7 +7,7 @@ import 'vs/css!./media/quickInput';
77import { IQuickPickItem , IPickOptions , IInputOptions , IQuickNavigateConfiguration , IQuickPick , IQuickInput , IQuickInputButton , IInputBox , IQuickPickItemButtonEvent , QuickPickInput , IQuickPickSeparator , IKeyMods , IQuickPickAcceptEvent , NO_KEY_MODS } from 'vs/base/parts/quickinput/common/quickInput' ;
88import * as dom from 'vs/base/browser/dom' ;
99import { CancellationToken } from 'vs/base/common/cancellation' ;
10- import { QuickInputList } from './quickInputList' ;
10+ import { QuickInputList , QuickInputListFocus } from './quickInputList' ;
1111import { QuickInputBox } from './quickInputBox' ;
1212import { KeyCode } from 'vs/base/common/keyCodes' ;
1313import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent' ;
@@ -629,7 +629,7 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
629629 private trySelectFirst ( ) {
630630 if ( this . autoFocusOnList ) {
631631 if ( ! this . ui . isScreenReaderOptimized ( ) && ! this . canSelectMany ) {
632- this . ui . list . focus ( ' First' ) ;
632+ this . ui . list . focus ( QuickInputListFocus . First ) ;
633633 }
634634 }
635635 }
@@ -656,17 +656,17 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
656656 this . visibleDisposables . add ( this . ui . inputBox . onKeyDown ( event => {
657657 switch ( event . keyCode ) {
658658 case KeyCode . DownArrow :
659- this . ui . list . focus ( ' Next' ) ;
659+ this . ui . list . focus ( QuickInputListFocus . Next ) ;
660660 if ( this . canSelectMany ) {
661661 this . ui . list . domFocus ( ) ;
662662 }
663663 event . preventDefault ( ) ;
664664 break ;
665665 case KeyCode . UpArrow :
666666 if ( this . ui . list . getFocusedElements ( ) . length ) {
667- this . ui . list . focus ( ' Previous' ) ;
667+ this . ui . list . focus ( QuickInputListFocus . Previous ) ;
668668 } else {
669- this . ui . list . focus ( ' Last' ) ;
669+ this . ui . list . focus ( QuickInputListFocus . Last ) ;
670670 }
671671 if ( this . canSelectMany ) {
672672 this . ui . list . domFocus ( ) ;
@@ -675,9 +675,9 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
675675 break ;
676676 case KeyCode . PageDown :
677677 if ( this . ui . list . getFocusedElements ( ) . length ) {
678- this . ui . list . focus ( ' NextPage' ) ;
678+ this . ui . list . focus ( QuickInputListFocus . NextPage ) ;
679679 } else {
680- this . ui . list . focus ( ' First' ) ;
680+ this . ui . list . focus ( QuickInputListFocus . First ) ;
681681 }
682682 if ( this . canSelectMany ) {
683683 this . ui . list . domFocus ( ) ;
@@ -686,9 +686,9 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
686686 break ;
687687 case KeyCode . PageUp :
688688 if ( this . ui . list . getFocusedElements ( ) . length ) {
689- this . ui . list . focus ( ' PreviousPage' ) ;
689+ this . ui . list . focus ( QuickInputListFocus . PreviousPage ) ;
690690 } else {
691- this . ui . list . focus ( ' Last' ) ;
691+ this . ui . list . focus ( QuickInputListFocus . Last ) ;
692692 }
693693 if ( this . canSelectMany ) {
694694 this . ui . list . domFocus ( ) ;
@@ -768,15 +768,15 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
768768
769769 private registerQuickNavigation ( ) {
770770 return dom . addDisposableListener ( this . ui . container , dom . EventType . KEY_UP , e => {
771- if ( this . canSelectMany || ! this . quickNavigate ) {
771+ if ( this . canSelectMany || ! this . _quickNavigate ) {
772772 return ;
773773 }
774774
775775 const keyboardEvent : StandardKeyboardEvent = new StandardKeyboardEvent ( e ) ;
776776 const keyCode = keyboardEvent . keyCode ;
777777
778778 // Select element when keys are pressed that signal it
779- const quickNavKeys = this . quickNavigate . keybindings ;
779+ const quickNavKeys = this . _quickNavigate . keybindings ;
780780 const wasTriggerKeyPressed = quickNavKeys . some ( k => {
781781 const [ firstPart , chordPart ] = k . getParts ( ) ;
782782 if ( chordPart ) {
@@ -850,11 +850,12 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
850850 this . ui . checkAll . checked = this . ui . list . getAllVisibleChecked ( ) ;
851851 this . ui . visibleCount . setCount ( this . ui . list . getVisibleCount ( ) ) ;
852852 this . ui . count . setCount ( this . ui . list . getCheckedCount ( ) ) ;
853- this . trySelectFirst ( ) ;
854853 if ( this . _quickNavigate && previousItemCount === 0 && this . items . length > 1 ) {
855854 // quick navigate: automatically focus the second entry
856855 // so that upon release the item is picked directly
857- this . ui . list . focus ( 'Next' ) ;
856+ this . ui . list . focus ( QuickInputListFocus . Second ) ;
857+ } else {
858+ this . trySelectFirst ( ) ;
858859 }
859860 }
860861 if ( this . ui . container . classList . contains ( 'show-checkboxes' ) !== ! ! this . canSelectMany ) {
@@ -1544,7 +1545,7 @@ export class QuickInputController extends Disposable {
15441545
15451546 navigate ( next : boolean , quickNavigate ?: IQuickNavigateConfiguration ) {
15461547 if ( this . isDisplayed ( ) && this . getUI ( ) . list . isDisplayed ( ) ) {
1547- this . getUI ( ) . list . focus ( next ? ' Next' : ' Previous' ) ;
1548+ this . getUI ( ) . list . focus ( next ? QuickInputListFocus . Next : QuickInputListFocus . Previous ) ;
15481549 if ( quickNavigate && this . controller instanceof QuickPick ) {
15491550 this . controller . quickNavigate = quickNavigate ;
15501551 }
0 commit comments