    189 "-"
    190 "."})
 
-(defn track-key-state [cast! direction suppressed-key-combos event]
+(defn track-key-state [cast! direction suppressed-key-combos app-state event]
   (let [meta?      (when (.-metaKey event) "meta")
         shift?     (when (.-shiftKey event) "shift")
         ctrl?      (when (.-ctrlKey event) "ctrl")

                                          (let [combined-primitives (->> nodes
                                                                         (map (fn [node] [(:name node) node]))
                                                                         (map (partial walk-tree-combining-meshes
                                                                                 #(get-in % [:material :values :diffuse]) 65532 0 []))
                                                                         (mapcat vals)
                                                                         flatten
                                                                         (sort-by primitive->program-name))

        key-up-handler           (fn [])
        suppressed-key-combos    #{"meta+A" "meta+D" "meta+Z" "shift+meta+Z" "backspace"
                                   "shift+meta+D" "up" "down" "left" "right" "meta+G"}
        handle-key-down          (partial track-key-state cast! :down suppressed-key-combos app-state)
        handle-key-up            (partial track-key-state cast! :up   suppressed-key-combos nil)
        handle-mouse-move!       #(handle-mouse-move cast! %)
        handle-canvas-mouse-down #(handle-mouse-down cast! %)
        handle-canvas-mouse-up   #(handle-mouse-up   cast! %)
