diff --git a/frontend/src/uxbox/main/data/shapes.cljs b/frontend/src/uxbox/main/data/shapes.cljs index a1f2fed36..810d7de27 100644 --- a/frontend/src/uxbox/main/data/shapes.cljs +++ b/frontend/src/uxbox/main/data/shapes.cljs @@ -725,11 +725,6 @@ ;; --- Move Selected -(defn- alignment-activated? - [state] - (let [flags (l/focus ul/workspace-flags state)] - (refs/alignment-activated? flags))) - (defn- get-displacement "Retrieve the correct displacement delta point for the provided direction speed and distances thresholds." @@ -759,9 +754,8 @@ (deftype MoveSelected [direction speed] ptk/WatchEvent (watch [_ state stream] - (let [align? (alignment-activated? state) - selected (l/focus ul/selected-shapes state) - page (l/focus ul/selected-page state) + (let [{:keys [page selected]} (:workspace state) + align? (refs/alignment-activated? state) metadata (merge c/page-metadata (get-in state [:pages page :metadata])) distance (get-displacement-distance metadata align?) displacement (get-displacement direction speed distance)] diff --git a/frontend/src/uxbox/main/refs.cljs b/frontend/src/uxbox/main/refs.cljs index 438422477..4ebf49163 100644 --- a/frontend/src/uxbox/main/refs.cljs +++ b/frontend/src/uxbox/main/refs.cljs @@ -8,6 +8,7 @@ "A collection of derived refs." (:require [lentes.core :as l] [beicon.core :as rx] + [uxbox.main.constants :as c] [uxbox.main.store :as st] [uxbox.main.lenses :as ul])) @@ -101,14 +102,16 @@ (l/derive workspace))) (defn alignment-activated? - [flags] - (and (contains? flags :grid-indexed) - (contains? flags :grid-alignment) - (contains? flags :grid))) + [state] + (let [{:keys [page flags]} (:workspace state) + metadata (merge c/page-metadata (get-in state [:pages page :metadata]))] + (and (contains? flags :grid-indexed) + (contains? flags :grid) + (:grid-alignment metadata)))) (def selected-alignment (-> (l/lens alignment-activated?) - (l/derive flags))) + (l/derive st/state))) (def canvas-mouse-position (-> (l/in [:pointer :canvas])