diff --git a/cypress/integration/ui/issues/issue-407.js b/cypress/integration/ui/issues/issue-407.js new file mode 100644 index 00000000..101727d9 --- /dev/null +++ b/cypress/integration/ui/issues/issue-407.js @@ -0,0 +1,30 @@ +import { + visitAndApproveStorage +} from '../../../support/ui-test-helper.js'; + +// See https://github.com/SVG-Edit/svgedit/issues/407 +describe('Fix issue 407', function () { + beforeEach(() => { + visitAndApproveStorage(); + }); + + it('can enter edit on text child', function () { + cy.get('#tool_source').click(); + cy.get('#svg_source_textarea') + .type('{selectall}') + .type(` + + Layer 1 + + + hello + + + `, {parseSpecialCharSequences: false}); + cy.get('#tool_source_save').click(); + cy.get('#svg_1').click().dblclick(); + cy.get('#a_text').should('exist'); + cy.get('#a_text').trigger('mousedown', {which: 1}).trigger('mouseup').dblclick().type('1234'); + cy.get('#a_text').should('have.text', 'he1234llo'); + }); +}); diff --git a/cypress/integration/ui/issues/issue-408.js b/cypress/integration/ui/issues/issue-408.js new file mode 100644 index 00000000..66dd222c --- /dev/null +++ b/cypress/integration/ui/issues/issue-408.js @@ -0,0 +1,29 @@ +import { + visitAndApproveStorage +} from '../../../support/ui-test-helper.js'; + +// See https://github.com/SVG-Edit/svgedit/issues/408 +describe('Fix issue 408', function () { + beforeEach(() => { + visitAndApproveStorage(); + }); + + it('should not throw when showing/saving svg content', function () { + cy.get('#tool_source').click(); + cy.get('#svg_source_textarea') + .type('{selectall}') + .type(` + + Layer 1 + + + + + + `, {parseSpecialCharSequences: false}); + cy.get('#tool_source_save').click(); + cy.get('#svg_6').click().dblclick(); // change context + cy.get('#tool_source').click(); // reopen tool_source + cy.get('#tool_source_save').should('exist'); // The save button should be here if it does not throw + }); +}); diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index d190a168..4c9d7804 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -692,10 +692,8 @@ const addToSelection = this.addToSelection = function (elemsToAdd, showGrips) { } call('selected', selectedElements); - if (showGrips || selectedElements.length === 1) { - selectorManager.requestSelector(selectedElements[0]).showGrips(true); - } else { - selectorManager.requestSelector(selectedElements[0]).showGrips(false); + if (selectedElements.length === 1) { + selectorManager.requestSelector(selectedElements[0]).showGrips(showGrips); } // make sure the elements are in the correct order @@ -2889,9 +2887,6 @@ const dblClick = function (evt) { const evtTarget = evt.target; const parent = evtTarget.parentNode; - // Do nothing if already in current group - if (parent === currentGroup) { return; } - let mouseTarget = getMouseTarget(evt); const {tagName} = mouseTarget; @@ -2900,6 +2895,9 @@ const dblClick = function (evt) { textActions.select(mouseTarget, pt.x, pt.y); } + // Do nothing if already in current group + if (parent === currentGroup) { return; } + if ((tagName === 'g' || tagName === 'a') && getRotationAngle(mouseTarget) ) {