diff --git a/common/src/app/common/types/modifiers.cljc b/common/src/app/common/types/modifiers.cljc index 5097550e9..3673eba1d 100644 --- a/common/src/app/common/types/modifiers.cljc +++ b/common/src/app/common/types/modifiers.cljc @@ -635,28 +635,32 @@ matrix)))] (recur matrix (next modifiers))))))) +(defn transform-text-node [value attrs] + (let [font-size (-> (get attrs :font-size 14) + (d/parse-double) + (* value) + (str))] + (d/txt-merge attrs {:font-size font-size}))) + +(defn update-text-content + [shape scale-text-content value] + (update shape :content scale-text-content value)) + (defn apply-structure-modifiers "Apply structure changes to a shape" [shape modifiers] (letfn [(scale-text-content [content value] - (->> content (txt/transform-nodes txt/is-text-node? - (fn [attrs] - (let [font-size (-> (get attrs :font-size 14) - (d/parse-double) - (* value) - (str)) ] - (d/txt-merge attrs {:font-size font-size})))))) + (partial transform-text-node value)))) (apply-scale-content [shape value] - (cond-> shape (cph/text-shape? shape) - (update :content scale-text-content value) + (update-text-content scale-text-content value) (cph/rect-shape? shape) (gsc/update-corners-scale value) @@ -666,7 +670,7 @@ (d/not-empty? (:shadow shape)) (gse/update-shadows-scale value) - + (some? (:blur shape)) (gse/update-blur-scale value)))] @@ -698,7 +702,6 @@ (let [value (dm/get-prop operation :value)] (update shape :shapes remove-children value)) - :scale-content (let [value (dm/get-prop operation :value)] (apply-scale-content shape value)) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 5b22c724f..88817b3be 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -104,7 +104,8 @@ (defn start-resize "Enter mouse resize mode, until mouse button is released." [handler ids shape] - (letfn [(resize [shape initial layout [point lock? center? point-snap]] + (letfn [(resize + [shape initial layout [point lock? center? point-snap]] (let [{:keys [width height]} (:selrect shape) {:keys [rotation]} shape @@ -192,7 +193,7 @@ (ctm/scale-content (:x scalev)))) modif-tree (dwm/create-modif-tree ids modifiers)] - (rx/of (dwm/set-modifiers modif-tree)))) + (rx/of (dwm/set-modifiers modif-tree (and (= :frame (:type shape)) scale-text))))) ;; Unifies the instantaneous proportion lock modifier ;; activated by Shift key and the shapes own proportion @@ -209,7 +210,7 @@ ptk/WatchEvent (watch [_ state stream] (let [initial-position @ms/mouse-position - stoper (rx/filter ms/mouse-up? stream) + stopper (rx/filter ms/mouse-up? stream) layout (:workspace-layout state) page-id (:current-page-id state) focus (:workspace-focus-selected state) @@ -226,7 +227,7 @@ (->> (snap/closest-snap-point page-id resizing-shapes objects layout zoom focus point) (rx/map #(conj current %))))) (rx/mapcat (partial resize shape initial-position layout)) - (rx/take-until stoper)) + (rx/take-until stopper)) (rx/of (dwm/apply-modifiers) (finish-transform))))))))