       (let [child-id (nth reason 1)
             child-focus-state (get-property [:this child-id] :focus-state)
             child-mode (:mode child-focus-state)
-            child-throw-mode (:throw-mode child-focus-state)]
+            child-throw-mode (:throw-mode child-focus-state)
+            _ (println "Child even into " (:id component) " child " child-id " mode " child-mode " thm " child-throw-mode)]
         (case child-mode
           ;; Nothing to change in this case
           :none old-focus-state

                            ;; changed about this
                            :requests-focus old-focus-state

                            ;; My child request focus and I thow focus - then I let this child get focus
                            :throws-focus (focus-child child-id))
          :throws-focus (case child-throw-mode
                          ;; My child throws focus in :prev direction. Give focus to previous child.
                          ;; But if I'm not a closed root then there may be no previous child,
                          ;; get-in-cycle returns nil in this case. Rethrow it out in this case
                          :prev (if-let [prev-child (get-in-cycle component :prev this-focused-child)]
                                  (focus-child prev-child)
                                  {:mode :throws-focus
                                   :throw-mode :prev
                                   :focused-child this-focused-child})

                :last (nth child-ids (dec child-count))))))
  ([component dir] (get-in-cycle component dir nil)))

(fg/defevolverfn :focus-state
  (let [reason (fg/get-reason)
        this-focused-child (:focused-child old-focus-state)
