0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-22 06:46:40 -05:00

🐛 Fixes problem with cursor

This commit is contained in:
alonso.torres 2021-01-29 21:45:52 +01:00
parent f4bbcdb382
commit 5b7ffac74e
2 changed files with 20 additions and 17 deletions

View file

@ -57,13 +57,13 @@
(mf/defc pixel-overlay
{::mf/wrap-props false}
[props]
(let [vport (unchecked-get props "vport")
vbox (unchecked-get props "vbox")
viewport-ref (unchecked-get props "viewport-ref")
options (unchecked-get props "options")
svg-ref (mf/use-ref nil)
canvas-ref (mf/use-ref nil)
img-ref (mf/use-ref nil)
(let [vport (unchecked-get props "vport")
vbox (unchecked-get props "vbox")
viewport-node (unchecked-get props "viewport")
options (unchecked-get props "options")
svg-ref (mf/use-ref nil)
canvas-ref (mf/use-ref nil)
img-ref (mf/use-ref nil)
update-str (rx/subject)
@ -78,11 +78,10 @@
handle-mouse-move-picker
(mf/use-callback
(mf/deps viewport-ref)
(mf/deps viewport-node)
(fn [event]
(when-let [zoom-view-node (.getElementById js/document "picker-detail")]
(let [viewport-node (mf/ref-val viewport-ref)
canvas-node (mf/ref-val canvas-ref)
(let [canvas-node (mf/ref-val canvas-ref)
{brx :left bry :top} (dom/get-bounding-rect viewport-node)
x (- (.-clientX event) brx)

View file

@ -151,13 +151,12 @@
{::mf/wrap-props false}
[props]
(let [cursor (unchecked-get props "cursor")
viewport-ref (unchecked-get props "viewport")
viewport (unchecked-get props "viewport")
visible? (mf/use-state true)
in-viewport? (mf/use-state true)
cursor-ref (mf/use-ref nil)
viewport (mf/ref-val viewport-ref)
node (mf/ref-val cursor-ref)
@ -184,8 +183,8 @@
#(let [style (obj/get node "style")]
(obj/set! style "transform" (str "translate(" x "px, " y "px)")))))))]
(mf/use-effect
(mf/deps viewport on-mouse-move)
(mf/use-layout-effect
(mf/deps on-mouse-move)
(fn []
(when viewport
(let [{:keys [left top]} (dom/get-bounding-rect viewport)
@ -328,11 +327,15 @@
alt? (mf/use-state false)
cursor (mf/use-state (get-cursor :pointer-inner))
viewport-ref (mf/use-ref nil)
viewport-node (mf/use-state nil)
zoom-view-ref (mf/use-ref nil)
last-position (mf/use-var nil)
disable-paste (mf/use-var false)
in-viewport? (mf/use-var false)
drawing (mf/deref refs/workspace-drawing)
drawing-tool (:tool drawing)
drawing-obj (:object drawing)
@ -703,7 +706,7 @@
(when picking-color?
[:& pixel-overlay {:vport vport
:vbox vbox
:viewport-ref viewport-ref
:viewport @viewport-node
:options options
:layout layout}])
@ -716,7 +719,7 @@
:file-id (:id file)}])
(when-not css-mouse?
[:& render-cursor {:viewport viewport-ref
[:& render-cursor {:viewport @viewport-node
:cursor @cursor}])
[:svg.viewport
@ -727,7 +730,8 @@
:width (:width vport 0)
:height (:height vport 0)
:view-box (format-viewbox vbox)
:ref viewport-ref
:ref #(do (mf/set-ref-val! viewport-ref %)
(reset! viewport-node %))
:class (when drawing-tool "drawing")
:style {:cursor (when css-mouse? @cursor)
:background-color (get options :background "#E8E9EA")}