diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 5121d978a..389e0baf0 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -1194,6 +1194,4 @@ origin (:transform shape (gmt/matrix)) (:transform-inverse shape (gmt/matrix)))}}] - - (.log js/console (clj->js modifiers)) (rx/of (dwm/set-wasm-modifiers modifiers)))))) diff --git a/frontend/src/app/render_wasm/api/texts.cljs b/frontend/src/app/render_wasm/api/texts.cljs index a70d5019b..e48cec362 100644 --- a/frontend/src/app/render_wasm/api/texts.cljs +++ b/frontend/src/app/render_wasm/api/texts.cljs @@ -10,8 +10,7 @@ [app.render-wasm.helpers :as h] [app.render-wasm.mem :as mem] [app.render-wasm.serializers :as sr] - [app.render-wasm.wasm :as wasm] - [clojure.string :as str])) + [app.render-wasm.wasm :as wasm])) (defn utf8->buffer [text] (let [encoder (js/TextEncoder.)] @@ -21,8 +20,7 @@ ;; buffer has the following format: ;; [ ] [leaves paragraph text] - (let [leaves (filter #(not (str/blank? (:text %))) leaves) - num-leaves (count leaves) + (let [num-leaves (count leaves) paragraph-attr-size 48 leaf-attr-size 52 metadata-size (+ 1 paragraph-attr-size (* num-leaves leaf-attr-size)) diff --git a/render-wasm/src/shapes/text.rs b/render-wasm/src/shapes/text.rs index d3455619a..96f6c9b05 100644 --- a/render-wasm/src/shapes/text.rs +++ b/render-wasm/src/shapes/text.rs @@ -125,10 +125,10 @@ impl TextContent { let text: String = leaf.apply_text_transform(paragraph.text_transform); builder.push_style(&stroke_style); builder.add_text(&text); - let p = builder.build(); - stroke_paragraphs.push(p); + builder.pop(); } - builder.reset(); + let p = builder.build(); + stroke_paragraphs.push(p); } paragraph_group.push(stroke_paragraphs); } @@ -451,8 +451,11 @@ impl RawTextData { } let text_utf8 = buffer[offset..text_end].to_vec(); - let text = String::from_utf8(text_utf8).expect("Invalid UTF-8 text"); + if text_utf8.is_empty() { + return (String::new(), text_end); + } + let text = String::from_utf8_lossy(&text_utf8).to_string(); (text, text_end) } }