Skip to content

Commit 7ee1149

Browse files
authored
less input stealing (#313439)
* less input stealing
1 parent 48c0eed commit 7ee1149

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

src/vs/sessions/contrib/remoteAgentHost/browser/mobileHostFilterActionViewItem.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)