aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/elements/Text.js7
-rw-r--r--src/modules/optional/transform.js5
-rw-r--r--src/utils/utils.js4
3 files changed, 13 insertions, 3 deletions
diff --git a/src/elements/Text.js b/src/elements/Text.js
index 39371f6..0c5815d 100644
--- a/src/elements/Text.js
+++ b/src/elements/Text.js
@@ -10,6 +10,7 @@ import SVGNumber from '../types/SVGNumber.js'
import Shape from './Shape.js'
import { globals } from '../utils/window.js'
import * as textable from '../modules/core/textable.js'
+import { isDescriptive } from '../utils/utils.js'
export default class Text extends Shape {
// Initialize node
@@ -48,6 +49,8 @@ export default class Text extends Shape {
const leading = this.dom.leading
this.each(function (i) {
+ if (isDescriptive(this.node)) return
+
const fontSize = globals.window
.getComputedStyle(this.node)
.getPropertyValue('font-size')
@@ -89,8 +92,8 @@ export default class Text extends Shape {
for (let i = 0, len = children.length; i < len; ++i) {
// skip textPaths - they are no lines
- if (children[i].nodeName === 'textPath') {
- if (i === 0) firstLine = 1
+ if (children[i].nodeName === 'textPath' || isDescriptive(children[i])) {
+ if (i === 0) firstLine = i + 1
continue
}
diff --git a/src/modules/optional/transform.js b/src/modules/optional/transform.js
index 7f950b3..b8ba46a 100644
--- a/src/modules/optional/transform.js
+++ b/src/modules/optional/transform.js
@@ -1,4 +1,4 @@
-import { getOrigin } from '../../utils/utils.js'
+import { getOrigin, isDescriptive } from '../../utils/utils.js'
import { delimiter, transforms } from '../core/regex.js'
import { registerMethods } from '../../utils/methods.js'
import Matrix from '../../types/Matrix.js'
@@ -39,6 +39,9 @@ export function matrixify() {
// add an element to another parent without changing the visual representation on the screen
export function toParent(parent, i) {
if (this === parent) return this
+
+ if (isDescriptive(this.node)) return this.addTo(parent, i)
+
const ctm = this.screenCTM()
const pCtm = parent.screenCTM().inverse()
diff --git a/src/utils/utils.js b/src/utils/utils.js
index c6e6d3b..0d297ec 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -120,3 +120,7 @@ export function getOrigin(o, element) {
// Return the origin as it is if it wasn't a string
return [ox, oy]
}
+
+const descriptiveElements = new Set(['desc', 'metadata', 'title'])
+export const isDescriptive = (element) =>
+ descriptiveElements.has(element.nodeName)