diff --git a/src/uxbox/main/ui/workspace/base.cljs b/src/uxbox/main/ui/workspace/base.cljs index cecf3446a..e09387175 100644 --- a/src/uxbox/main/ui/workspace/base.cljs +++ b/src/uxbox/main/ui/workspace/base.cljs @@ -16,7 +16,10 @@ [goog.events :as events]) (:import goog.events.EventType)) -;; --- Lenses +;; FIXME: split this namespace in two: +;; uxbox.main.ui.streams and uxbox.main.ui.workspace.refs + +;; --- Refs (def workspace-ref (-> (l/in [:workspace]) @@ -80,19 +83,9 @@ ;; --- Events -;; TODO: this should replace mouse-events-s and keyboard-events-b (defonce events-b (rx/bus)) (defonce events-s (rx/dedupe events-b)) -(defonce mouse-events-b (rx/bus)) -(defonce mouse-events-s (rx/dedupe mouse-events-b)) - -;; (defonce kaka -;; (rx/subscribe mouse-events-s #(println "event:" %))) - -(defonce keyboard-events-b (rx/bus)) -(defonce keyboard-events-s (rx/dedupe keyboard-events-b)) - ;; --- Mouse Position Stream (defonce mouse-b (rx/bus)) diff --git a/src/uxbox/main/ui/workspace/canvas.cljs b/src/uxbox/main/ui/workspace/canvas.cljs index 24893b8ed..893518669 100644 --- a/src/uxbox/main/ui/workspace/canvas.cljs +++ b/src/uxbox/main/ui/workspace/canvas.cljs @@ -83,18 +83,18 @@ (gpt/subtract brect)))))) (on-key-down [event] - (rx/push! wb/keyboard-events-b {:type :keyboard/down - :key (.-keyCode event) - :shift? (kbd/shift? event) - :ctrl? (kbd/ctrl? event)}) - (when (kbd/space? event) - (rlocks/acquire! :workspace/scroll))) + (let [opts {:key (.-keyCode event) + :shift? (kbd/shift? event) + :ctrl? (kbd/ctrl? event)}] + (rx/push! wb/events-b [:keyboard/down opts]) + (when (kbd/space? event) + (rlocks/acquire! :workspace/scroll)))) (on-key-up [event] - (rx/push! wb/keyboard-events-b {:type :keyboard/up - :key (.-keyCode event) - :shift? (kbd/shift? event) - :ctrl? (kbd/ctrl? event)})) + (let [opts {:key (.-keyCode event) + :shift? (kbd/shift? event) + :ctrl? (kbd/ctrl? event)}] + (rx/push! wb/events-b [:keyboard/up opts]))) (on-mousemove [event] (let [wpt (gpt/point (.-clientX event) diff --git a/src/uxbox/main/ui/workspace/scroll.cljs b/src/uxbox/main/ui/workspace/scroll.cljs index 34f37d1e2..bd8fd0035 100644 --- a/src/uxbox/main/ui/workspace/scroll.cljs +++ b/src/uxbox/main/ui/workspace/scroll.cljs @@ -15,11 +15,11 @@ (defn watch-scroll-interactions [own] - (letfn [(is-space-up? [{:keys [key type]}] + (letfn [(is-space-up? [[type {:keys [key]}]] (and (= 32 key) (= :keyboard/up type))) (on-start [] - (let [stoper (->> wb/keyboard-events-s + (let [stoper (->> wb/events-s (rx/filter is-space-up?) (rx/take 1)) local (:rum/local own)