🐛 Fix problems with locked frames

This commit is contained in:
alonso.torres 2023-07-03 15:10:49 +02:00
parent 302750bd7e
commit 302bfd3007
7 changed files with 28 additions and 13 deletions

View file

@ -63,20 +63,22 @@
;; Add & select the created shape to the workspace
(rx/concat
(if (= :text (:type shape))
(if (or (= :text (:type shape)) (= :frame (:type shape)))
(rx/of (dwu/start-undo-transaction (:id shape)))
(rx/empty))
(rx/of (dwsh/add-shape shape {:no-select? (= tool :curve)}))
(if (= :frame (:type shape))
(->> (uw/ask! {:cmd :selection/query
:page-id page-id
:rect (:selrect shape)
:include-frames? true
:full-frame? true})
(rx/map #(cph/clean-loops objects %))
(rx/map #(dwsh/move-shapes-into-frame (:id shape) %)))
(rx/concat
(->> (uw/ask! {:cmd :selection/query
:page-id page-id
:rect (:selrect shape)
:include-frames? true
:full-frame? true})
(rx/map #(cph/clean-loops objects %))
(rx/map #(dwsh/move-shapes-into-frame (:id shape) %)))
(rx/of (dwu/commit-undo-transaction (:id shape))))
(rx/empty)))))
;; Delay so the mouse event can read the drawing state

View file

@ -143,12 +143,14 @@
(cond-> (ctl/grid-layout? objects frame-id)
(pcb/update-shapes [frame-id] ctl/assign-cells))))))
(defn move-shapes-into-frame [frame-id shapes]
(defn move-shapes-into-frame
[frame-id shapes]
(ptk/reify ::move-shapes-into-frame
ptk/WatchEvent
(watch [it state _]
(let [page-id (:current-page-id state)
objects (wsh/lookup-page-objects state page-id)
shapes (->> shapes (remove #(dm/get-in objects [% :blocked])))
changes (-> (pcb/empty-changes it page-id)
(pcb/with-objects objects))
changes (prepare-move-shapes-into-frame changes

View file

@ -196,7 +196,7 @@
(-> (update-in [:svg-attrs :style] dissoc :mix-blend-mode)
(assoc :blend-mode (-> (get-in shape [:svg-attrs :style :mix-blend-mode]) assert-valid-blend-mode)))))
(defn create-raw-svg [name frame-id svg-data {:keys [tag attrs] :as data}]
(defn create-raw-svg [name frame-id svg-data {:keys [attrs] :as data}]
(let [{:keys [x y width height offset-x offset-y]} svg-data]
(-> {:id (uuid/next)
:type :svg-raw

View file

@ -203,6 +203,7 @@
ids (into
(d/ordered-set)
(remove #(dm/get-in objects [% :blocked]))
(ctt/sort-z-index objects ids {:bottom-frames? mod?}))
grouped? (fn [id] (contains? #{:group :bool} (get-in objects [id :type])))

View file

@ -149,7 +149,9 @@
text-pos-x (if (:use-for-thumbnail? frame) 15 0)]
(when (not (:hidden frame))
[:g.frame-title {:id (dm/str "frame-title-" (:id frame)) :transform (vwu/title-transform frame zoom)}
[:g.frame-title {:id (dm/str "frame-title-" (:id frame))
:transform (vwu/title-transform frame zoom)
:pointer-events (when (:blocked frame) "none")}
(when (:use-for-thumbnail? frame)
[:svg {:x 0
:y -9