diff --git a/lib/features/label-editing/cmd/UpdateLabelHandler.js b/lib/features/label-editing/cmd/UpdateLabelHandler.js index 6d12a2e901..63678b938f 100644 --- a/lib/features/label-editing/cmd/UpdateLabelHandler.js +++ b/lib/features/label-editing/cmd/UpdateLabelHandler.js @@ -88,6 +88,11 @@ export default function UpdateLabelHandler(modeling, textRenderer) { newBounds = ctx.newBounds, hints = ctx.hints || {}; + // ignore internal labels for elements except text annotations + if (!isLabel(label) && !is(label, 'bpmn:TextAnnotation')) { + return; + } + if (isLabel(label) && isEmptyText(newLabel)) { if (hints.removeShape !== false) { @@ -97,11 +102,6 @@ export default function UpdateLabelHandler(modeling, textRenderer) { return; } - // ignore internal labels for elements except text annotations - if (!isLabelExternal(element) && !is(element, 'bpmn:TextAnnotation')) { - return; - } - var text = getLabel(label); // resize element based on label _or_ pre-defined bounds diff --git a/test/spec/features/modeling/UpdateLabelSpec.js b/test/spec/features/modeling/UpdateLabelSpec.js index 6f8259d4a3..8c39be936e 100644 --- a/test/spec/features/modeling/UpdateLabelSpec.js +++ b/test/spec/features/modeling/UpdateLabelSpec.js @@ -50,6 +50,27 @@ describe('features/modeling - update label', function() { )); + it('should not create label on empty text', inject( + function(modeling, elementRegistry) { + + // given + var startEvent_2 = elementRegistry.get('StartEvent_2'); + + // when + modeling.updateLabel(startEvent_2, ''); + + // then + expect(startEvent_2.businessObject.name).to.equal(''); + expect(startEvent_2.label).not.to.exist; + + expect(startEvent_2).to.have.dimensions({ + width: 36, + height: 36 + }); + } + )); + + describe('should delete label', function() { it('when setting null', inject(