From f69e141ac1964d93c1a355dd329b1e1adb355a73 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 24 Aug 2023 11:35:57 +0200 Subject: [PATCH 1/2] :sparkles: Navigate up in layer lierarchy with Shift+Enter shortcut --- CHANGES.md | 6 ++++++ frontend/src/app/main/data/workspace.cljs | 17 +++++++++++++++++ .../src/app/main/data/workspace/shortcuts.cljs | 4 ++++ frontend/translations/en.po | 3 +++ frontend/translations/es.po | 3 +++ version.txt | 2 +- 6 files changed, 34 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 5e28382c6d..f6abff4001 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,11 @@ # CHANGELOG +## 1.19.2 + +### :sparkles: New features + +- Navigate up in layer lierarchy with Shift+Enter shortcut [Taiga #5734](https://tree.taiga.io/project/penpot/us/5734) + ## 1.19.1 ### :bug: Bugs fixed diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 777a034379..5643942190 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -988,6 +988,23 @@ (rx/of (dwe/start-edition-mode id) (dwdp/start-path-edit id))))))))) +(defn select-parent-layer + [] + (ptk/reify ::select-parent-layer + ptk/WatchEvent + (watch [_ state _] + (let [selected (wsh/lookup-selected state) + objects (wsh/lookup-page-objects state) + shapes-to-select + (->> selected + (reduce + (fn [result shape-id] + (let [parent-id (dm/get-in objects [shape-id :parent-id])] + (if (and (some? parent-id) (not= parent-id uuid/zero)) + (conj result parent-id) + (conj result shape-id)))) + (d/ordered-set)))] + (rx/of (dws/select-shapes shapes-to-select)))))) ;; --- Change Page Order (D&D Ordering) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 4cf059c95a..e3b56e18e5 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -509,6 +509,10 @@ :subsections [:navigation-workspace] :fn #(st/emit! (dw/select-next-shape))} + :select-parent-layer {:tooltip (ds/shift ds/enter) + :command "shift+enter" + :subsections [:navigation-workspace] + :fn #(emit-when-no-readonly (dw/select-parent-layer))} ;; SHAPE diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 27fc408705..0605e8cd09 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2704,6 +2704,9 @@ msgstr "Snap to pixel grid" msgid "shortcuts.start-editing" msgstr "Start editing" +msgid "shortcuts.select-parent-layer" +msgstr "Select parent layer" + msgid "shortcuts.start-measure" msgstr "Start measurement" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 8076484d0a..0bab82043b 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2778,6 +2778,9 @@ msgstr "Activar alineación a rejilla de pixel" msgid "shortcuts.start-editing" msgstr "Comenzar edición" +msgid "shortcuts.select-parent-layer" +msgstr "Seleccionar capa padre" + msgid "shortcuts.start-measure" msgstr "Comenzar medida" diff --git a/version.txt b/version.txt index 66e2ae6c25..836ae4eda2 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.19.1 +1.19.2 From 8593ca13104f3f8affa97c88d5efb39c414f78fa Mon Sep 17 00:00:00 2001 From: Aitor Date: Thu, 24 Aug 2023 13:31:06 +0200 Subject: [PATCH 2/2] :bug: Fix scroll automatically to layer item --- CHANGES.md | 2 +- frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index f6abff4001..467f7afaf8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,7 +4,7 @@ ### :sparkles: New features -- Navigate up in layer lierarchy with Shift+Enter shortcut [Taiga #5734](https://tree.taiga.io/project/penpot/us/5734) +- Navigate up in layer hierarchy with Shift+Enter shortcut [Taiga #5734](https://tree.taiga.io/project/penpot/us/5734) ## 1.19.1 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 ca4e022c87..b4cc9c145d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs @@ -175,6 +175,7 @@ ;; seek for an alternate solution. Maybe use-context? scroll-node (dom/get-parent-with-data node "scrollContainer") parent-node (dom/get-parent-at node 2) + first-child-node (dom/get-first-child parent-node) subid (when (and single? selected?) @@ -184,9 +185,9 @@ #(let [scroll-distance-ratio (dom/get-scroll-distance-ratio node scroll-node) scroll-behavior (if (> scroll-distance-ratio 1) "instant" "smooth")] (if scroll-to - (dom/scroll-into-view! parent-node #js {:block "center" :behavior scroll-behavior :inline "start"}) + (dom/scroll-into-view! first-child-node #js {:block "center" :behavior scroll-behavior :inline "start"}) (do - (dom/scroll-into-view-if-needed! parent-node #js {:block "center" :behavior scroll-behavior :inline "start"}) + (dom/scroll-into-view-if-needed! first-child-node #js {:block "center" :behavior scroll-behavior :inline "start"}) (reset! scroll-to-middle? true)))))))] #(when (some? subid)