diff --git a/ivette/src/renderer/Laboratory.tsx b/ivette/src/renderer/Laboratory.tsx index e9bee9670d02c2dbe22172ea9d7793babf75a57b..6d1d191bee72916bdc3d491f2e541e4b656cdf73 100644 --- a/ivette/src/renderer/Laboratory.tsx +++ b/ivette/src/renderer/Laboratory.tsx @@ -637,6 +637,7 @@ interface LayoutMenuState extends Actions { compId: compId; x: number; y: number; + fromDock: boolean; } const closedMenu: LayoutMenuState = { @@ -644,6 +645,7 @@ const closedMenu: LayoutMenuState = { dock: false, undock: false, close: false, + fromDock: false, x: 0, y: 0, }; @@ -653,9 +655,13 @@ const MENU = new States.GlobalState<LayoutMenuState>(closedMenu); function openLayoutMenu( compId: compId, actions: Actions, - evt: React.MouseEvent + evt: React.MouseEvent, + fromDock = false ): void { - MENU.setValue({ ...actions, compId, x: evt.clientX, y: evt.clientY }); + MENU.setValue({ + ...actions, compId, + x: evt.clientX, y: evt.clientY, fromDock + }); } function closeMenu(): void { @@ -766,7 +772,7 @@ function LayoutMenu(): JSX.Element | null { ref={href} tabIndex={0} className={className} - style={{ left, top }} + style={menu.fromDock ? { left, bottom: 0 } : { left, top }} onBlur={closeMenu} onKeyDown={closeMenu} > @@ -1122,7 +1128,7 @@ function DockItem(props: DockItemProps): JSX.Element | null { dock: visible, undock: true, close: true - }, evt); + }, evt, true); }; return (