mirror of
https://github.com/penpot/penpot.git
synced 2025-06-11 08:01:40 +02:00
Merge pull request #2785 from penpot/azazeln28-fix-mousewheel-on-viewer-inspector
🐛 Fix mouse wheel on viewer inspector
This commit is contained in:
commit
1c3470ca53
2 changed files with 22 additions and 4 deletions
|
@ -44,6 +44,7 @@
|
||||||
- Fix max height in library dialog [Github #2335](https://github.com/penpot/penpot/issues/2335)
|
- Fix max height in library dialog [Github #2335](https://github.com/penpot/penpot/issues/2335)
|
||||||
- Fix undo ungroup (shift+g) scrambles positions [Taiga #4674](https://tree.taiga.io/project/penpot/issue/4674)
|
- Fix undo ungroup (shift+g) scrambles positions [Taiga #4674](https://tree.taiga.io/project/penpot/issue/4674)
|
||||||
- Fix justified text is stretched [Github #2539](https://github.com/penpot/penpot/issues/2539)
|
- Fix justified text is stretched [Github #2539](https://github.com/penpot/penpot/issues/2539)
|
||||||
|
- Fix mousewheel on viewer inspector [Taiga #4221](https://tree.taiga.io/project/penpot/issue/4221)
|
||||||
|
|
||||||
## 1.16.2-beta
|
## 1.16.2-beta
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,8 @@
|
||||||
|
|
||||||
(mf/defc viewport
|
(mf/defc viewport
|
||||||
[{:keys [local file page frame index viewer-pagination size]}]
|
[{:keys [local file page frame index viewer-pagination size]}]
|
||||||
(let [on-mouse-wheel
|
(let [inspect-svg-container-ref (mf/use-ref nil)
|
||||||
|
on-mouse-wheel
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(when (kbd/mod? event)
|
(when (kbd/mod? event)
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event)
|
||||||
|
@ -45,14 +46,30 @@
|
||||||
(.-deltaX ^js event))]
|
(.-deltaX ^js event))]
|
||||||
(if (pos? delta)
|
(if (pos? delta)
|
||||||
(st/emit! dv/decrease-zoom)
|
(st/emit! dv/decrease-zoom)
|
||||||
(st/emit! dv/increase-zoom)))))
|
(st/emit! dv/increase-zoom))))
|
||||||
|
(when-not (kbd/mod? event)
|
||||||
|
(let [event (.getBrowserEvent ^js event)
|
||||||
|
shift? (kbd/shift? event)
|
||||||
|
inspect-svg-container (mf/ref-val inspect-svg-container-ref)
|
||||||
|
delta (+ (.-deltaY ^js event)
|
||||||
|
(.-deltaX ^js event))
|
||||||
|
scroll-pos (if shift?
|
||||||
|
(dom/get-h-scroll-pos inspect-svg-container)
|
||||||
|
(dom/get-scroll-pos inspect-svg-container))
|
||||||
|
new-scroll-pos (+ scroll-pos delta)]
|
||||||
|
(do
|
||||||
|
(dom/prevent-default event)
|
||||||
|
(dom/stop-propagation event)
|
||||||
|
(if shift?
|
||||||
|
(dom/set-h-scroll-pos! inspect-svg-container new-scroll-pos)
|
||||||
|
(dom/set-scroll-pos! inspect-svg-container new-scroll-pos))))))
|
||||||
|
|
||||||
on-mount
|
on-mount
|
||||||
(fn []
|
(fn []
|
||||||
;; bind with passive=false to allow the event to be cancelled
|
;; bind with passive=false to allow the event to be cancelled
|
||||||
;; https://stackoverflow.com/a/57582286/3219895
|
;; https://stackoverflow.com/a/57582286/3219895
|
||||||
(let [key1 (events/listen goog/global EventType.WHEEL
|
(let [key1 (events/listen goog/global EventType.WHEEL
|
||||||
on-mouse-wheel #js {"passive" false})]
|
on-mouse-wheel #js {"passive" false "capture" true})]
|
||||||
(fn []
|
(fn []
|
||||||
(events/unlistenByKey key1))))]
|
(events/unlistenByKey key1))))]
|
||||||
|
|
||||||
|
@ -69,7 +86,7 @@
|
||||||
:page page}]
|
:page page}]
|
||||||
[:div.inspect-svg-wrapper {:on-click (handle-select-frame frame)}
|
[:div.inspect-svg-wrapper {:on-click (handle-select-frame frame)}
|
||||||
[:& viewer-pagination {:index index :num-frames (count (:frames page)) :left-bar true :right-bar true}]
|
[:& viewer-pagination {:index index :num-frames (count (:frames page)) :left-bar true :right-bar true}]
|
||||||
[:div.inspect-svg-container
|
[:div.inspect-svg-container {:ref inspect-svg-container-ref}
|
||||||
[:& render-frame-svg {:frame frame :page page :local local :size size}]]]
|
[:& render-frame-svg {:frame frame :page page :local local :size size}]]]
|
||||||
|
|
||||||
[:& right-sidebar {:frame frame
|
[:& right-sidebar {:frame frame
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue