Skip to content

Commit c3c254a

Browse files
committed
Prevent scroll when handling mouse clicks in focus manager
1 parent 2ab21b6 commit c3c254a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

packages/ui/src/lib/focus/focusManager.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export class FocusManager {
9292
if (e.target instanceof HTMLElement) {
9393
const focusableNode = this.findNearestFocusableElement(e.target);
9494
if (focusableNode && focusableNode.element.contains(e.target)) {
95-
this.setActiveNode(focusableNode);
95+
this.setActiveNode(focusableNode, true);
9696
this.setOutline(false);
9797
}
9898
}
@@ -173,7 +173,7 @@ export class FocusManager {
173173
}
174174

175175
if (options.activate) {
176-
this.setActiveNode(newNode);
176+
this.setActiveNode(newNode, false);
177177
}
178178
}
179179

@@ -208,13 +208,13 @@ export class FocusManager {
208208
this.cursor.set(undefined);
209209
}
210210

211-
private setActiveNode(node?: FocusableNode): boolean {
211+
private setActiveNode(node?: FocusableNode, skipScroll?: boolean): boolean {
212212
if (!node) return false;
213213
const previousNode = this.currentNode;
214214

215215
if (!node.options.focusable) return false;
216216

217-
this.focusElement(node.element);
217+
this.focusElement(node.element, skipScroll);
218218
this.cursor.set(node.element);
219219

220220
if (node === this.currentNode) return true;
@@ -944,7 +944,7 @@ export class FocusManager {
944944
}
945945
}
946946

947-
focusElement(element: HTMLElement): void {
947+
focusElement(element: HTMLElement, skipScroll?: boolean): void {
948948
if (!element || !element.isConnected) return;
949949

950950
if (element.tabIndex !== -1) {
@@ -955,7 +955,9 @@ export class FocusManager {
955955
activeElement.blur();
956956
}
957957
}
958-
scrollIntoViewIfNeeded(element);
958+
if (!skipScroll) {
959+
scrollIntoViewIfNeeded(element);
960+
}
959961
}
960962

961963
// ============================================

0 commit comments

Comments
 (0)