diff --git a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuTrigger.tsx b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuTrigger.tsx index 8a52e5cec03..ccd804e1b1a 100644 --- a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuTrigger.tsx +++ b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuTrigger.tsx @@ -40,13 +40,16 @@ export const PanelHeaderMenuTrigger: FC = ({ children, ...divProps }) => ); }; -function isClick(current: CartesianCoords2D, clicked: CartesianCoords2D): boolean { - return clicked.x === current.x && clicked.y === current.y; +function isClick(current: CartesianCoords2D, clicked: CartesianCoords2D, deadZone = 3.5): boolean { + // A "deadzone" radius is added so that if the cursor is moved within this radius + // between mousedown and mouseup, it's still considered a click and not a drag. + const clickDistance = Math.sqrt((current.x - clicked.x) ** 2 + (current.y - clicked.y) ** 2); + return clickDistance <= deadZone; } function eventToClickCoordinates(event: MouseEvent): CartesianCoords2D { return { - x: Math.floor(event.clientX), - y: Math.floor(event.clientY), + x: event.clientX, + y: event.clientY, }; }