     (handle-wheel panel screen-state)
     (handle-resize panel screen-state)
     (handle-zoom frame screen-state)
+    (watch-keys frame screen-state)
     (display-follow panel screen-state)
     (display-follow panel available-tiles)
     frame))

  (bind-window-keys window ["SUBTRACT" "OPEN_BRACKET"]
                   (fn [] (swap! zoom-atom update-in [:zoom] #(max MIN-ZOOM (dec %))))))

;; MAIN WINDOW AND PANEL

(defn main-panel [screen-state available-tiles]

  `(let [ret# (time ~expr)]
     (println '~expr)
     ret#))

;; GUI UTILITIES

(defn descendants
  "Returns a depth-first seq of all components contained by window."
  [window]
  (tree-seq (constantly true)
            #(.getComponents %)
            window))


;; TILE <--> PIXELS

