mirror of
https://github.com/penpot/penpot.git
synced 2025-06-03 08:31:39 +02:00
🐛 Fix when right click on a selected text shows artboard contextual menu
This commit is contained in:
parent
60f6093357
commit
62ed2221e9
2 changed files with 53 additions and 49 deletions
|
@ -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
|
||||||
|
|
|
@ -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]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue