@@ -79,26 +79,26 @@ export class ListboxPattern<V> {
7979
8080 if ( this . readonly ( ) ) {
8181 return manager
82- . on ( this . prevKey , ( ) => this . listBehavior . prev ( ) )
83- . on ( this . nextKey , ( ) => this . listBehavior . next ( ) )
82+ . on ( this . prevKey , ( ) => this . listBehavior . prev ( ) , { handleRepeat : true } )
83+ . on ( this . nextKey , ( ) => this . listBehavior . next ( ) , { handleRepeat : true } )
8484 . on ( 'Home' , ( ) => this . listBehavior . first ( ) )
8585 . on ( 'End' , ( ) => this . listBehavior . last ( ) )
8686 . on ( this . typeaheadRegexp , e => this . listBehavior . search ( e . key ) ) ;
8787 }
8888
8989 if ( ! this . followFocus ( ) ) {
9090 manager
91- . on ( this . prevKey , ( ) => this . listBehavior . prev ( ) )
92- . on ( this . nextKey , ( ) => this . listBehavior . next ( ) )
91+ . on ( this . prevKey , ( ) => this . listBehavior . prev ( ) , { handleRepeat : true } )
92+ . on ( this . nextKey , ( ) => this . listBehavior . next ( ) , { handleRepeat : true } )
9393 . on ( 'Home' , ( ) => this . listBehavior . first ( ) )
9494 . on ( 'End' , ( ) => this . listBehavior . last ( ) )
9595 . on ( this . typeaheadRegexp , e => this . listBehavior . search ( e . key ) ) ;
9696 }
9797
9898 if ( this . followFocus ( ) ) {
9999 manager
100- . on ( this . prevKey , ( ) => this . listBehavior . prev ( { selectOne : true } ) )
101- . on ( this . nextKey , ( ) => this . listBehavior . next ( { selectOne : true } ) )
100+ . on ( this . prevKey , ( ) => this . listBehavior . prev ( { selectOne : true } ) , { handleRepeat : true } )
101+ . on ( this . nextKey , ( ) => this . listBehavior . next ( { selectOne : true } ) , { handleRepeat : true } )
102102 . on ( 'Home' , ( ) => this . listBehavior . first ( { selectOne : true } ) )
103103 . on ( 'End' , ( ) => this . listBehavior . last ( { selectOne : true } ) )
104104 . on ( this . typeaheadRegexp , e => this . listBehavior . search ( e . key , { selectOne : true } ) ) ;
@@ -107,8 +107,12 @@ export class ListboxPattern<V> {
107107 if ( this . inputs . multi ( ) ) {
108108 manager
109109 . on ( Modifier . Any , 'Shift' , ( ) => this . listBehavior . anchor ( this . listBehavior . activeIndex ( ) ) )
110- . on ( Modifier . Shift , this . prevKey , ( ) => this . listBehavior . prev ( { selectRange : true } ) )
111- . on ( Modifier . Shift , this . nextKey , ( ) => this . listBehavior . next ( { selectRange : true } ) )
110+ . on ( Modifier . Shift , this . prevKey , ( ) => this . listBehavior . prev ( { selectRange : true } ) , {
111+ handleRepeat : true ,
112+ } )
113+ . on ( Modifier . Shift , this . nextKey , ( ) => this . listBehavior . next ( { selectRange : true } ) , {
114+ handleRepeat : true ,
115+ } )
112116 . on ( [ Modifier . Ctrl | Modifier . Shift , Modifier . Meta | Modifier . Shift ] , 'Home' , ( ) =>
113117 this . listBehavior . first ( { selectRange : true , anchor : false } ) ,
114118 )
@@ -137,8 +141,12 @@ export class ListboxPattern<V> {
137141
138142 if ( this . inputs . multi ( ) && this . followFocus ( ) ) {
139143 manager
140- . on ( [ Modifier . Ctrl , Modifier . Meta ] , this . prevKey , ( ) => this . listBehavior . prev ( ) )
141- . on ( [ Modifier . Ctrl , Modifier . Meta ] , this . nextKey , ( ) => this . listBehavior . next ( ) )
144+ . on ( [ Modifier . Ctrl , Modifier . Meta ] , this . prevKey , ( ) => this . listBehavior . prev ( ) , {
145+ handleRepeat : true ,
146+ } )
147+ . on ( [ Modifier . Ctrl , Modifier . Meta ] , this . nextKey , ( ) => this . listBehavior . next ( ) , {
148+ handleRepeat : true ,
149+ } )
142150 . on ( [ Modifier . Ctrl , Modifier . Meta ] , ' ' , ( ) => this . listBehavior . toggle ( ) )
143151 . on ( [ Modifier . Ctrl , Modifier . Meta ] , 'Enter' , ( ) => this . listBehavior . toggle ( ) )
144152 . on ( [ Modifier . Ctrl , Modifier . Meta ] , 'Home' , ( ) => this . listBehavior . first ( ) )
0 commit comments