From 263f96dbbe268e9077f03652cf39fbdd12bbadee Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Wed, 15 May 2024 12:12:56 +0800 Subject: [PATCH 1/2] fix drag on legend scrollbar --- src/components/legend/draw.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js index fad99893f4f..8e7abcf29fa 100644 --- a/src/components/legend/draw.js +++ b/src/components/legend/draw.js @@ -423,18 +423,23 @@ function drawOne(gd, opts) { dragElement.init({ element: legend.node(), gd: gd, - prepFn: function() { + prepFn: function(e) { + if(e.target === scrollBar.node()) { + return; + } var transform = Drawing.getTranslate(legend); x0 = transform.x; y0 = transform.y; }, moveFn: function(dx, dy) { - var newX = x0 + dx; - var newY = y0 + dy; + if(x0 !== undefined && y0 !== undefined) { + var newX = x0 + dx; + var newY = y0 + dy; - Drawing.setTranslate(legend, newX, newY); - xf = dragElement.align(newX, legendObj._width, gs.l, gs.l + gs.w, legendObj.xanchor); - yf = dragElement.align(newY + legendObj._height, -legendObj._height, gs.t + gs.h, gs.t, legendObj.yanchor); + Drawing.setTranslate(legend, newX, newY); + xf = dragElement.align(newX, legendObj._width, gs.l, gs.l + gs.w, legendObj.xanchor); + yf = dragElement.align(newY + legendObj._height, -legendObj._height, gs.t + gs.h, gs.t, legendObj.yanchor); + } }, doneFn: function() { if(xf !== undefined && yf !== undefined) { From c40b18065691137f5ce56ef12230e27c531037e7 Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Wed, 15 May 2024 12:17:42 +0800 Subject: [PATCH 2/2] Add draft log --- draftlogs/6997_fix.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 draftlogs/6997_fix.md diff --git a/draftlogs/6997_fix.md b/draftlogs/6997_fix.md new file mode 100644 index 00000000000..52e67c0484d --- /dev/null +++ b/draftlogs/6997_fix.md @@ -0,0 +1,2 @@ +- Fix drag on legend scrollbar while `edits.legendPosition` is `true` [[#6997](https://github.com/plotly/plotly.js/pull/6997)], + with thanks to @OpportunityLiu for the contribution!