From fda0294bebe4605aa1dae648844faeae6a1fccca Mon Sep 17 00:00:00 2001 From: Kevin D Date: Tue, 5 Apr 2022 14:22:39 +0900 Subject: [PATCH] Issue 752 snapping movement selector misalignment (#753) --- cypress/integration/ui/issues/issue-752.js | 39 ++++++++++++++++++++++ src/svgcanvas/event.js | 1 + 2 files changed, 40 insertions(+) create mode 100644 cypress/integration/ui/issues/issue-752.js diff --git a/cypress/integration/ui/issues/issue-752.js b/cypress/integration/ui/issues/issue-752.js new file mode 100644 index 00000000..93038ce8 --- /dev/null +++ b/cypress/integration/ui/issues/issue-752.js @@ -0,0 +1,39 @@ +import { + visitAndApproveStorage +} from '../../../support/ui-test-helper.js' + +// See https://github.com/SVG-Edit/svgedit/issues/752 +describe('Fix issue 752', function () { + beforeEach(() => { + visitAndApproveStorage() + }) + + it('Moving an unsnapped shape will not cause selector box misalignment', function () { + cy.get('#tool_rect') + .click({ force: true }) + cy.get('#svgcontent') + .trigger('mousedown', 12, 12, { force: true }) + .trigger('mousemove', 99, 99, { force: true }) + .trigger('mouseup', { force: true }) + cy.wait(300) + cy.get('#svg_1') + .click({ force: true }) + cy.get('#tool_editor_prefs') + .click({ force: true }) + cy.get('#grid_snapping_step') + .then(elem => { + elem.val('35') + }) + cy.wait(300) + cy.get('#grid_snapping_on') + .click({ force: true }) + cy.get('#tool_prefs_save') + .click({ force: true }) + cy.get('#svg_1') + .trigger('mousedown', 20, 20, { force: true }) + .trigger('mousemove', 203, 205, { force: true }) + .trigger('mouseup', { force: true }) + + cy.get('#selectedBox0').should('have.attr', 'd', 'M174,174 L246,174 246,246 174,246z') + }) +}) diff --git a/src/svgcanvas/event.js b/src/svgcanvas/event.js index 97ef3642..4c12ff7b 100644 --- a/src/svgcanvas/event.js +++ b/src/svgcanvas/event.js @@ -625,6 +625,7 @@ const mouseUpEvent = (evt) => { const len = selectedElements.length for (let i = 0; i < len; ++i) { if (!selectedElements[i]) { break } + svgCanvas.selectorManager.requestSelector(selectedElements[i]).resize() } // no change in position/size, so maybe we should move to pathedit } else {