@@ -159,7 +159,10 @@ export class MobileHostFilterActionViewItem extends HostFilterActionViewItem {
159159 // --- Dismissal: backdrop tap + Escape -------------------------------
160160 disposables . add ( Gesture . addTarget ( backdrop ) ) ;
161161 for ( const eventType of [ dom . EventType . CLICK , TouchEventType . Tap ] ) {
162- disposables . add ( dom . addDisposableListener ( backdrop , eventType , ( ) => finish ( ) ) ) ;
162+ disposables . add ( dom . addDisposableListener ( backdrop , eventType , e => {
163+ dom . EventHelper . stop ( e , true ) ;
164+ finish ( ) ;
165+ } ) ) ;
163166 }
164167 disposables . add ( dom . addDisposableListener ( targetDocument , dom . EventType . KEY_DOWN , e => {
165168 if ( new StandardKeyboardEvent ( e ) . equals ( KeyCode . Escape ) ) {
@@ -168,9 +171,8 @@ export class MobileHostFilterActionViewItem extends HostFilterActionViewItem {
168171 }
169172 } ) ) ;
170173
171- // Focus management: focus the selected host or the first focusable item.
172- const focusTarget = focusRefs . firstCheckedHost ?? focusRefs . firstHost ?? focusRefs . rediscover ;
173- focusTarget ?. focus ( ) ;
174+ // Focus the currently selected host when the sheet opens.
175+ focusRefs . firstCheckedHost ?. focus ( ) ;
174176 }
175177
176178 private _renderHostList ( disposables : DisposableStore , body : HTMLElement , finish : ( ) => void , focusRefs : { firstHost ?: HTMLButtonElement ; firstCheckedHost ?: HTMLButtonElement } ) : void {
@@ -228,14 +230,17 @@ export class MobileHostFilterActionViewItem extends HostFilterActionViewItem {
228230 check . append ( ...renderLabelWithIcons ( `$(${ Codicon . check . id } )` ) ) ;
229231 }
230232
231- const select = ( ) => {
233+ const select = ( e ?: Event ) => {
234+ if ( e ) {
235+ dom . EventHelper . stop ( e , true ) ;
236+ }
232237 this . _filterService . setSelectedProviderId ( host . providerId ) ;
233238 finish ( ) ;
234239 } ;
235240
236241 disposables . add ( Gesture . addTarget ( row ) ) ;
237- disposables . add ( dom . addDisposableListener ( row , dom . EventType . CLICK , select ) ) ;
238- disposables . add ( dom . addDisposableListener ( row , TouchEventType . Tap , select ) ) ;
242+ disposables . add ( dom . addDisposableListener ( row , dom . EventType . CLICK , e => select ( e ) ) ) ;
243+ disposables . add ( dom . addDisposableListener ( row , TouchEventType . Tap , e => select ( e ) ) ) ;
239244 return row ;
240245 }
241246
@@ -272,16 +277,19 @@ export class MobileHostFilterActionViewItem extends HostFilterActionViewItem {
272277 update ( ) ;
273278 disposables . add ( this . _filterService . onDidChangeDiscovering ( update ) ) ;
274279
275- const trigger = ( ) => {
280+ const trigger = ( e ?: Event ) => {
281+ if ( e ) {
282+ dom . EventHelper . stop ( e , true ) ;
283+ }
276284 if ( this . _filterService . isDiscovering ) {
277285 return ;
278286 }
279287 this . _filterService . rediscover ( ) ;
280288 } ;
281289
282290 disposables . add ( Gesture . addTarget ( action ) ) ;
283- disposables . add ( dom . addDisposableListener ( action , dom . EventType . CLICK , trigger ) ) ;
284- disposables . add ( dom . addDisposableListener ( action , TouchEventType . Tap , trigger ) ) ;
291+ disposables . add ( dom . addDisposableListener ( action , dom . EventType . CLICK , e => trigger ( e ) ) ) ;
292+ disposables . add ( dom . addDisposableListener ( action , TouchEventType . Tap , e => trigger ( e ) ) ) ;
285293 return action ;
286294 }
287295}
0 commit comments