guard for character shape data that does not have any shapes (like "\r" when not forced line break in text) #3143
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I found that some files have text that will not render properly with the canvas renderer but will render with the svg renderer.
Upon further investigation it appears that there is an incorrect assumption that shapeData will always have shapes.
Specifically I found that if I make a text element with forced line breaks (they appear as "\r" in the character data) it will render for both the canvas renderer and svg renderer. However if I have a file without forced line breaks but the bounds of the text element cause it to wrap to a new line then it tries to render "\r" char but the shapeData object does not have a shapes key
the bug is demonstrated in this example with text "no forced line breaks"
a counter example with forced line breaks for the text "This\rwill\rbreak" works already without the bug fix: