🐛 Fix Ci tests for shape proxy in plugin runtime

This commit is contained in:
Andrey Fedorov 2025-03-10 08:43:51 +01:00 committed by Andrés Moya
parent a33828467f
commit ba768f8744
2 changed files with 27 additions and 7 deletions

View file

@ -859,6 +859,12 @@
(rx/of (reorder-selected-layout-child direction)) (rx/of (reorder-selected-layout-child direction))
(rx/of (nudge-selected-shapes direction shift?))))))) (rx/of (nudge-selected-shapes direction shift?)))))))
(defn- get-delta [position bbox]
(let [cpos (gpt/point (:x bbox) (:y bbox))
pos (gpt/point (or (:x position) (:x bbox))
(or (:y position) (:y bbox)))]
(gpt/subtract pos cpos)))
(defn- get-relative-delta [position bbox frame] (defn- get-relative-delta [position bbox frame]
(let [frame-bbox (-> frame :points grc/points->rect) (let [frame-bbox (-> frame :points grc/points->rect)
relative-cpos (gpt/subtract (gpt/point (:x bbox) (:y bbox)) relative-cpos (gpt/subtract (gpt/point (:x bbox) (:y bbox))
@ -884,7 +890,9 @@
;; FIXME: performance rect ;; FIXME: performance rect
bbox (-> shape :points grc/points->rect) bbox (-> shape :points grc/points->rect)
frame (cfh/get-frame objects shape) frame (cfh/get-frame objects shape)
delta (get-relative-delta position bbox frame) delta (if (:absolute? options)
(get-delta position bbox)
(get-relative-delta position bbox frame))
modif-tree (dwm/create-modif-tree [id] (ctm/move-modifiers delta))] modif-tree (dwm/create-modif-tree [id] (ctm/move-modifiers delta))]
(rx/of (dwm/apply-modifiers {:modifiers modif-tree (rx/of (dwm/apply-modifiers {:modifiers modif-tree
:page-id page-id :page-id page-id

View file

@ -492,7 +492,9 @@
(u/display-not-valid :x "Plugin doesn't have 'content:write' permission") (u/display-not-valid :x "Plugin doesn't have 'content:write' permission")
:else :else
(st/emit! (dw/update-position id {:x value})))))} (st/emit! (dw/update-position id
{:x value}
{:absolute? true})))))}
:y :y
{:this true {:this true
@ -508,7 +510,9 @@
(u/display-not-valid :y "Plugin doesn't have 'content:write' permission") (u/display-not-valid :y "Plugin doesn't have 'content:write' permission")
:else :else
(st/emit! (dw/update-position id {:y value})))))} (st/emit! (dw/update-position id
{:y value}
{:absolute? true})))))}
:parent :parent
{:this true {:this true
@ -542,7 +546,9 @@
parent-id (-> self u/proxy->shape :parent-id) parent-id (-> self u/proxy->shape :parent-id)
parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id)
parent-x (:x parent)] parent-x (:x parent)]
(st/emit! (dw/update-position id {:x (+ parent-x value)})))))} (st/emit! (dw/update-position id
{:x (+ parent-x value)}
{:absolute? true})))))}
:parentY :parentY
{:this true {:this true
@ -567,7 +573,9 @@
parent-id (-> self u/proxy->shape :parent-id) parent-id (-> self u/proxy->shape :parent-id)
parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id)
parent-y (:y parent)] parent-y (:y parent)]
(st/emit! (dw/update-position id {:y (+ parent-y value)})))))} (st/emit! (dw/update-position id
{:y (+ parent-y value)}
{:absolute? true})))))}
:boardX :boardX
{:this true {:this true
@ -592,7 +600,9 @@
frame-id (-> self u/proxy->shape :frame-id) frame-id (-> self u/proxy->shape :frame-id)
frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id)
frame-x (:x frame)] frame-x (:x frame)]
(st/emit! (dw/update-position id {:x (+ frame-x value)})))))} (st/emit! (dw/update-position id
{:x (+ frame-x value)}
{:absolute? true})))))}
:boardY :boardY
{:this true {:this true
@ -617,7 +627,9 @@
frame-id (-> self u/proxy->shape :frame-id) frame-id (-> self u/proxy->shape :frame-id)
frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id)
frame-y (:y frame)] frame-y (:y frame)]
(st/emit! (dw/update-position id {:y (+ frame-y value)})))))} (st/emit! (dw/update-position id
{:y (+ frame-y value)}
{:absolute? true})))))}
:width :width
{:this true {:this true