mirror of
https://github.com/penpot/penpot.git
synced 2025-04-16 08:51:32 -05:00
Handle properly zoom.
This commit is contained in:
parent
444018d105
commit
d558b3e6f4
2 changed files with 15 additions and 6 deletions
|
@ -87,14 +87,23 @@
|
|||
left (.-scrollLeft target)]
|
||||
(rx/push! uuwb/scroll-b (gpt/point left top))))
|
||||
|
||||
|
||||
(def ^:const ^:private zoom-l
|
||||
(-> (l/in [:workspace :zoom])
|
||||
(l/focus-atom st/state)))
|
||||
|
||||
(defn- on-wheel
|
||||
[event]
|
||||
[own event]
|
||||
(when (kbd/ctrl? event)
|
||||
(dom/prevent-default event)
|
||||
(dom/stop-propagation event)
|
||||
(if (pos? (.-deltaY event))
|
||||
(rs/emit! (dw/increase-zoom))
|
||||
(rs/emit! (dw/decrease-zoom)))))
|
||||
(rs/emit! (dw/decrease-zoom)))
|
||||
|
||||
(let [dom (mx/get-ref-dom own "workspace-canvas")]
|
||||
(set! (.-scrollLeft dom) (* uuwb/canvas-start-scroll-x (or @zoom-l 1)))
|
||||
(set! (.-scrollTop dom) (* uuwb/canvas-start-scroll-y (or @zoom-l 1))))))
|
||||
|
||||
(defn- workspace-render
|
||||
[own projectid]
|
||||
|
@ -119,7 +128,7 @@
|
|||
[:section.workspace-content
|
||||
{:class classes
|
||||
:on-scroll on-scroll
|
||||
:on-wheel on-wheel}
|
||||
:on-wheel (partial on-wheel own)}
|
||||
|
||||
;; Rules
|
||||
(horizontal-rule zoom)
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
(let [workspace (rum/react uuwb/workspace-l)
|
||||
page (rum/react uuwb/page-l)
|
||||
drawing? (:drawing workspace)
|
||||
zoom (:zoom workspace 1)]
|
||||
zoom (or (:zoom workspace) 1)]
|
||||
(letfn [(on-mouse-down [event]
|
||||
(dom/stop-propagation event)
|
||||
(when-not (empty? (:selected workspace))
|
||||
|
@ -101,8 +101,8 @@
|
|||
(uuc/release-action! "ui.shape"
|
||||
"ui.selrect"))]
|
||||
(html
|
||||
[:svg.viewport {:width uuwb/viewport-width
|
||||
:height uuwb/viewport-height
|
||||
[:svg.viewport {:width (* uuwb/viewport-width zoom)
|
||||
:height (* uuwb/viewport-height zoom)
|
||||
:ref "viewport"
|
||||
:class (when drawing? "drawing")
|
||||
:on-mouse-down on-mouse-down
|
||||
|
|
Loading…
Add table
Reference in a new issue