Merge pull request #416 from OptimistikSAS/master

Fix: issue #407 and #408
master
JFH 2020-06-26 01:11:10 +02:00 committed by GitHub
commit 18d73cfefa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 7 deletions

View File

@ -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(`<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
<g class="layer">
<title>Layer 1</title>
<g>
<rect fill="#ffff00" height="70" width="165" x="179.5" y="146.5"/>
<text fill="#000000" id="a_text" text-anchor="middle" x="260.5" xml:space="preserve" y="192.5">hello</text>
</g>
</g>
</svg>`, {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');
});
});

View File

@ -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(`<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<g class="layer">
<title>Layer 1</title>
<g id="svg_6">
<rect fill="#FF0000" height="71" stroke="#000000" stroke-width="5" width="94" x="69.5" y="51.5"/>
<circle cx="117.5" cy="87.5" fill="#ffff00" r="19.84943" stroke="#000000" />
</g>
</g>
</svg>`, {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
});
});

View File

@ -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)
) {