From a569a350b4137d8dd8a61e46210c228b425884d7 Mon Sep 17 00:00:00 2001 From: AzazelN28 Date: Thu, 11 Apr 2024 10:41:51 +0200 Subject: [PATCH] :bug: Fix toolbar disappearing --- CHANGES.md | 2 +- frontend/src/app/main/data/workspace/path/drawing.cljs | 3 ++- .../src/app/main/ui/workspace/sidebar/layer_item.cljs | 2 +- frontend/src/app/main/ui/workspace/viewport/hooks.cljs | 8 +++++--- .../src/app/main/ui/workspace/viewport/path_actions.cljs | 3 ++- frontend/src/app/util/dom.cljs | 9 +++++---- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 7482ad9c57..be9785f21f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -131,7 +131,7 @@ - Fix problem with fix scrolling on nested elements [Github #3508](https://github.com/penpot/penpot/issues/3508) - Fix problem when changing typography assets [Github #3683](https://github.com/penpot/penpot/issues/3683) - Internal error when you copy and paste some main components between files [Taiga #7397](https://tree.taiga.io/project/penpot/issue/7397) - +- Fix toolbar disappearing [Taiga #7411](https://tree.taiga.io/project/penpot/issue/7411) ## 1.19.5 diff --git a/frontend/src/app/main/data/workspace/path/drawing.cljs b/frontend/src/app/main/data/workspace/path/drawing.cljs index f536f3369d..3841c3f76c 100644 --- a/frontend/src/app/main/data/workspace/path/drawing.cljs +++ b/frontend/src/app/main/data/workspace/path/drawing.cljs @@ -357,7 +357,8 @@ (common/finish-path) (dwdc/clear-drawing))))))) -(defn change-edit-mode [mode] +(defn change-edit-mode + [mode] (ptk/reify ::change-edit-mode ptk/UpdateEvent (update [_ state] diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs index a2e008fa92..2f4147a687 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs @@ -333,7 +333,7 @@ ;; NOTE: Neither get-parent-at nor get-parent-with-selector ;; work if the component template changes, so we need to ;; seek for an alternate solution. Maybe use-context? - scroll-node (dom/get-parent-with-data node "scrollContainer") + scroll-node (dom/get-parent-with-data node "scroll-container") parent-node (dom/get-parent-at node 2) first-child-node (dom/get-first-child parent-node) diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index d9f1dd1b53..0fba360081 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -47,9 +47,11 @@ on-paste (actions/on-paste disable-paste in-viewport? workspace-read-only?) on-pointer-down (mf/use-fn (mf/deps drawing-tool drawing-path?) - (fn [_] - (when drawing-path? - (st/emit! (dwe/clear-edition-mode))))) + (fn [e] + (let [target (dom/get-target e) + parent? (dom/get-parent-with-data target "dont-clear-path")] + (when (and drawing-path? (not parent?)) + (st/emit! (dwe/clear-edition-mode)))))) on-blur (mf/use-fn #(st/emit! (mse/->BlurEvent)))] (mf/use-effect diff --git a/frontend/src/app/main/ui/workspace/viewport/path_actions.cljs b/frontend/src/app/main/ui/workspace/viewport/path_actions.cljs index 0da6131055..353befcd4d 100644 --- a/frontend/src/app/main/ui/workspace/viewport/path_actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/path_actions.cljs @@ -142,7 +142,8 @@ (fn [_] (st/emit! (drp/toggle-snap))))] - [:div {:class (stl/css :sub-actions)} + [:div {:class (stl/css :sub-actions) + :data-dont-clear-path true} [:div {:class (stl/css :sub-actions-group)} ;; Draw Mode diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index 01d34e5823..08b89d3640 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -169,10 +169,11 @@ (defn get-parent-with-data [^js node name] - (loop [current node] - (if (or (nil? current) (obj/in? (.-dataset current) name)) - current - (recur (.-parentElement current))))) + (let [name (str/camel name)] + (loop [current node] + (if (or (nil? current) (obj/in? (.-dataset current) name)) + current + (recur (.-parentElement current)))))) (defn get-parent-with-selector [^js node selector]