🐛 Fix when right click on a selected text shows artboard contextual menu

This commit is contained in:
alonso.torres 2021-03-29 20:15:49 +02:00 committed by Andrey Antukh
parent 60f6093357
commit 62ed2221e9
2 changed files with 53 additions and 49 deletions

View file

@ -68,6 +68,7 @@
- Fix layout problem for editable selects [Taiga #1488](https://tree.taiga.io/project/penpot/issue/1488) - Fix layout problem for editable selects [Taiga #1488](https://tree.taiga.io/project/penpot/issue/1488)
- Fix artboard title wasn't move when resizing [Taiga #1479](https://tree.taiga.io/project/penpot/issue/1479) - Fix artboard title wasn't move when resizing [Taiga #1479](https://tree.taiga.io/project/penpot/issue/1479)
- Fix titles in viewer thumbnails too long [Taiga #1474](https://tree.taiga.io/project/penpot/issue/1474) - Fix titles in viewer thumbnails too long [Taiga #1474](https://tree.taiga.io/project/penpot/issue/1474)
- Fix when right click on a selected text shows artboard contextual menu [Taiga #1226](https://tree.taiga.io/project/penpot/issue/1226)
### :arrow_up: Deps updates ### :arrow_up: Deps updates

View file

@ -34,46 +34,47 @@
(mf/use-callback (mf/use-callback
(mf/deps id blocked hidden type drawing-tool text-editing? edition selected) (mf/deps id blocked hidden type drawing-tool text-editing? edition selected)
(fn [bevent] (fn [bevent]
(dom/stop-propagation bevent) (when (dom/class? (dom/get-target bevent) "viewport-controls")
(dom/stop-propagation bevent)
(let [event (.-nativeEvent bevent) (let [event (.-nativeEvent bevent)
ctrl? (kbd/ctrl? event) ctrl? (kbd/ctrl? event)
shift? (kbd/shift? event) shift? (kbd/shift? event)
alt? (kbd/alt? event) alt? (kbd/alt? event)
left-click? (= 1 (.-which event)) left-click? (= 1 (.-which event))
middle-click? (= 2 (.-which event)) middle-click? (= 2 (.-which event))
frame? (= :frame type)
selected? (contains? selected id)]
(when middle-click? frame? (= :frame type)
(dom/prevent-default bevent) selected? (contains? selected id)]
(st/emit! (dw/start-panning)))
(when left-click? (when middle-click?
(st/emit! (ms/->MouseEvent :down ctrl? shift? alt?)) (dom/prevent-default bevent)
(st/emit! (dw/start-panning)))
(when (and (not= edition id) text-editing?) (when left-click?
(st/emit! dw/clear-edition-mode)) (st/emit! (ms/->MouseEvent :down ctrl? shift? alt?))
(when (and (or (not edition) (not= edition id)) (not blocked) (not hidden)) (when (and (not= edition id) text-editing?)
(cond (st/emit! dw/clear-edition-mode))
(and drawing-tool (not (#{:comments :path} drawing-tool)))
(st/emit! (dd/start-drawing drawing-tool))
edit-path (when (and (or (not edition) (not= edition id)) (not blocked) (not hidden))
;; Handle node select-drawing. NOP at the moment (cond
nil (and drawing-tool (not (#{:comments :path} drawing-tool)))
(st/emit! (dd/start-drawing drawing-tool))
(or (not id) (and frame? (not selected?))) edit-path
(st/emit! (dw/handle-selection shift?)) ;; Handle node select-drawing. NOP at the moment
nil
:else (or (not id) (and frame? (not selected?)))
(st/emit! (when (or shift? (not selected?)) (st/emit! (dw/handle-selection shift?))
(dw/select-shape id shift?))
(when (not shift?) :else
(dw/start-move-selected)))))))))) (st/emit! (when (or shift? (not selected?))
(dw/select-shape id shift?))
(when (not shift?)
(dw/start-move-selected)))))))))))
(defn on-move-selected (defn on-move-selected
[hover hover-ids selected] [hover hover-ids selected]
@ -122,17 +123,18 @@
(mf/use-callback (mf/use-callback
(mf/deps @hover selected) (mf/deps @hover selected)
(fn [event] (fn [event]
(let [ctrl? (kbd/ctrl? event) (when (dom/class? (dom/get-target event) "viewport-controls")
shift? (kbd/shift? event) (let [ctrl? (kbd/ctrl? event)
alt? (kbd/alt? event) shift? (kbd/shift? event)
alt? (kbd/alt? event)
hovering? (some? @hover) hovering? (some? @hover)
frame? (= :frame (:type @hover)) frame? (= :frame (:type @hover))
selected? (contains? selected (:id @hover))] selected? (contains? selected (:id @hover))]
(st/emit! (ms/->MouseEvent :click ctrl? shift? alt?)) (st/emit! (ms/->MouseEvent :click ctrl? shift? alt?))
(when (and hovering? (not shift?) (not frame?) (not selected?)) (when (and hovering? (not shift?) (not frame?) (not selected?))
(st/emit! (dw/select-shape (:id @hover)))))))) (st/emit! (dw/select-shape (:id @hover)))))))))
(defn on-double-click (defn on-double-click
[hover hover-ids drawing-path? objects] [hover hover-ids drawing-path? objects]
@ -176,16 +178,17 @@
(mf/use-callback (mf/use-callback
(mf/deps @hover) (mf/deps @hover)
(fn [event] (fn [event]
(dom/prevent-default event) (when (dom/class? (dom/get-target event) "viewport-controls")
(dom/prevent-default event)
(let [position (dom/get-client-position event)] (let [position (dom/get-client-position event)]
;; Delayed callback because we need to wait to the previous context menu to be closed ;; Delayed callback because we need to wait to the previous context menu to be closed
(timers/schedule (timers/schedule
#(st/emit! #(st/emit!
(if (some? @hover) (if (some? @hover)
(dw/show-shape-context-menu {:position position (dw/show-shape-context-menu {:position position
:shape @hover}) :shape @hover})
(dw/show-context-menu {:position position})))))))) (dw/show-context-menu {:position position})))))))))
(defn on-mouse-up (defn on-mouse-up
[disable-paste] [disable-paste]