From 6d6ff0fd61f08938ce5e88594185c94d85481d15 Mon Sep 17 00:00:00 2001 From: Ishan Madhusanka Date: Sun, 27 Apr 2025 14:19:56 +0530 Subject: [PATCH 1/3] fix context menu position --- packages/ui/src/lib/ContextMenu.svelte | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/lib/ContextMenu.svelte b/packages/ui/src/lib/ContextMenu.svelte index 680bc3cb05..8e0e0ce841 100644 --- a/packages/ui/src/lib/ContextMenu.svelte +++ b/packages/ui/src/lib/ContextMenu.svelte @@ -97,7 +97,10 @@ function setAlignByMouse(e?: MouseEvent) { if (!e) return; - menuPosition = { x: e.clientX, y: e.clientY }; + const clientX = horizontalAlign === 'left' ? e.clientX - contextMenuWidth : e.clientX; + const clientY = side === 'top' ? e.clientY - contextMenuHeight : e.clientY; + + menuPosition = { x: clientX, y: clientY }; } function setAlignByTarget(target: HTMLElement) { From c30fd2adaf26a5cca0218062bfe2df35687e371d Mon Sep 17 00:00:00 2001 From: Ishan Madhusanka Date: Thu, 1 May 2025 11:32:19 +0530 Subject: [PATCH 2/3] Fix: Prevent toggling of context menu on window resize --- packages/ui/src/lib/ContextMenu.svelte | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/lib/ContextMenu.svelte b/packages/ui/src/lib/ContextMenu.svelte index 5bd412ff9f..fab6848d33 100644 --- a/packages/ui/src/lib/ContextMenu.svelte +++ b/packages/ui/src/lib/ContextMenu.svelte @@ -173,9 +173,11 @@ horizontalAlign = 'left'; setAlignment(); } - if (rect.bottom > viewport.bottom) { - side = 'top'; - setAlignment(); + if (rect.bottom > viewport.bottom && rect.top > viewport.top) { + setTimeout(() => { + side = 'top'; + setAlignment(); + }, 0) } if (rect.top < viewport.top) { side = 'bottom'; From 43d4a4a4ad7582d816c7dfe12792b52b5d5ecf38 Mon Sep 17 00:00:00 2001 From: Ishan Madhusanka Date: Fri, 2 May 2025 12:58:01 +0530 Subject: [PATCH 3/3] fix lint issue --- packages/ui/src/lib/ContextMenu.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/lib/ContextMenu.svelte b/packages/ui/src/lib/ContextMenu.svelte index fab6848d33..b5acc9434f 100644 --- a/packages/ui/src/lib/ContextMenu.svelte +++ b/packages/ui/src/lib/ContextMenu.svelte @@ -177,7 +177,7 @@ setTimeout(() => { side = 'top'; setAlignment(); - }, 0) + }, 0); } if (rect.top < viewport.top) { side = 'bottom';