fix(ui): remove phantom context menu scrollbars

Keep hidden submenus in viewport-fixed positioning from their first layout so they do not enlarge the root context menu scroll area before hover. Preserve viewport-safe submenu placement for mouse and keyboard activation.
This commit is contained in:
Sucukdeluxe
2026-08-15 03:10:11 +02:00
parent 8efee74b5c
commit f4b9bc9f12
2 changed files with 7 additions and 2 deletions
+2 -2
View File
@@ -243,7 +243,7 @@ body,
.menu-submenu-dropdown { .menu-submenu-dropdown {
position: absolute; position: absolute;
top: -4px; top: -4px;
left: 100%; left: 0;
z-index: 1001; z-index: 1001;
min-width: max-content; min-width: max-content;
background: var(--card); background: var(--card);
@@ -2712,7 +2712,7 @@ td {
.ctx-menu-sub-items { .ctx-menu-sub-items {
display: block; display: block;
position: absolute; position: fixed;
left: 100%; left: 100%;
top: 0; top: 0;
min-width: 120px; min-width: 120px;
+5
View File
@@ -112,4 +112,9 @@ describe("ContextMenu", () => {
expect(stylesSource).toMatch(/\.ctx-menu-sub:hover\s*>\s*\.ctx-menu-sub-items\.is-positioned/s); expect(stylesSource).toMatch(/\.ctx-menu-sub:hover\s*>\s*\.ctx-menu-sub-items\.is-positioned/s);
expect(contextMenuSource).toContain('window.addEventListener("pointerdown", onOutside, true)'); expect(contextMenuSource).toContain('window.addEventListener("pointerdown", onOutside, true)');
}); });
it("keeps hidden submenus outside the root menu scroll area before hover", () => {
expect(stylesSource).toMatch(/\.ctx-menu-sub-items\s*{[^}]*position:\s*fixed;/s);
expect(stylesSource).not.toMatch(/\.ctx-menu-sub-items\s*{[^}]*position:\s*absolute;/s);
});
}); });