diff --git a/desktop/src-common/advent/screens/inventory.clj b/desktop/src-common/advent/screens/inventory.clj index 98f46ada..d5ca6054 100644 --- a/desktop/src-common/advent/screens/inventory.clj +++ b/desktop/src-common/advent/screens/inventory.clj @@ -32,7 +32,8 @@ (defn mouse-down [screen entities options] (let [[x y] (utils/unproject screen options) selected-entity (first (filter #((:box %) x y) (vals (:items entities))))] - (assoc entities :selected-item (:item selected-entity)))) + (assoc entities :selected-item (:item selected-entity) + :down-time (:total-time screen)))) (defn mouse-outside-inventory? [[x y]] (or (< x 80) @@ -73,11 +74,13 @@ (cond (not selected-item) (close screen entities false false) - (and (= selected-item hovered-item) + (and + (> (- (:total-time screen) (:down-time entities)) 0.5) + (= selected-item hovered-item) dragged?) (dissoc entities :selected-item :dragged?) - (or (not hovered-item) (= selected-item hovered-item)) + (and (or (not hovered-item) (= selected-item hovered-item))) (do (screen! @(resolve 'advent.screens.scene/scene) :on-chose-item { :item selected-item}) (close screen entities false false)) :else