              :node-clone (atom #js {})
              :prev-on-click (atom #js {})
              :remove-all-listeners remove-all-listeners
-             :install-listeners install-listeners}]
+             :install-listeners install-listeners
+             :select-file (or select-file
+                              (fn [{:keys [file line column]}]
+                                (figwheel.client.heads-up/heads-up-event-dispatch
+                                  #js {:figwheelEvent "file-selected"
+                                       :fileName file
+                                       :fileLine (str line)
+                                       :fileColumn (str column)})))}]
     (remove-all-listeners)
     (add-listener EventType.MOUSEMOVE (highlight-element ctx))
     (add-listener EventType.CLICK (inspect-element ctx))
-    (add-and-remove-listener EventType.KEYPRESS (toggle-devtools ctx))))
+    (remove-and-add-listener EventType.KEYPRESS (toggle-devtools ctx))))
 
 (defn wrap-render [meta-info {:keys [this class]} body]
-  (dom/div #js {:data-untangled-ui meta-info}
-    body))
+  (dom/div #js {:data-untangled-ui meta-info} body))

          (gobj/set js/window "attached-listeners" (atom #{})))
    (gobj/get js/window "attached-listeners")))

(defn install-listeners []
  (let [add-listener (fn [et f] (swap! attached-listeners conj (gevt/listen js/document et f)))
        add-and-remove-listener
        (fn [et f]
          (gevt/unlistenByKey (gobj/get js/window "keypress-listener"))
          (gobj/set js/window "keypress-listener"

    [om.dom :as dom]
    [goog.object :as gobj]
    [goog.dom :as gdom]
    [goog.events :as gevt])
  (:import
    goog.events.EventType))

