From 61a7325bc05c4f2da4346285c80b5cea71dd5eec Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 28 Aug 2023 11:58:17 +0500 Subject: [PATCH] fill-bg for text instead of the entire symbol by default #3594 Before - https://i.imgur.com/OsQycgW.png After - https://i.imgur.com/rZvXIoT.png --- .../blenderbim/bim/module/drawing/svgwriter.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py index 48783336bd..7021c9bfd2 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py @@ -774,11 +774,14 @@ class SvgWriter: "text-anchor": text_anchor, } - def add_fill_bg(self, element): - element = element.copy() + def add_fill_bg(self, element, copy=True): + if copy: + element = element.copy() if hasattr(element, "xml"): attrib = element.xml.attrib - else: + elif isinstance(element, ET.Element): + attrib = element.attrib + else: # assuming it's svgwrite.base.BaseElement attrib = element.attribs attrib["filter"] = "url(#fill-background)" return element @@ -831,7 +834,12 @@ class SvgWriter: field.attrib["class"] = classes_str if fill_bg: - self.svg.add(self.add_fill_bg(symbol_svg)) + symbol_copied = symbol_svg.copy() + for text_tag in symbol_copied.xml.findall("text"): + self.add_fill_bg(text_tag, copy=False) + # NOTE: in case we'll later need to add fill-bg for the entire symbol: + # self.add_fill_bg(symbol_svg, copy=False) + self.svg.add(symbol_copied) self.svg.add(symbol_svg) return None