 (defn focus-child-by-direction [child-id dir]
   (assoc (focus-child child-id) :throw-mode dir))
 
+(defn focus-uninterested? [component]
+  (and (not (:closed-focus-root component)) (not (:focusable component))))
+
 (fg/defevolverfn :focus-state
   (let [reason (fg/get-reason)
         this-focused-child (:focused-child old-focus-state)
         this-mode (:mode old-focus-state)
+        parent-id (get-property [] :id)
         parent-focus-state (get-property [] :focus-state)
         parent-focused-child (:focused-child parent-focus-state)
         parent-mode (:mode parent-focus-state)]


                            ;; My child request focus and I throw 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,

                                              :throw-mode (if (:closed-focus-root component)
                                                            :next
                                                            :out-of-cycle-next)
                                              :focused-child this-focused-child})

          :got-trigger (cond
                         (:focusable component)
                         (having-focus-state component "trigger")
                         (or
                           (:closed-focus-root component)
                           (get-in-cycle component :first nil))
                         (temporarily-taken-from-state component "trigger"      ;TODO This worked nicely even with tester widged but broke slider
                           (if-let [first-to-give (get-in-cycle component :first nil)]
                              first-to-give
                              child-id)
                           nil)
                         :else
                         {:mode :got-trigger
                          :focused-child nil})))

      :else ; Neither event type - ignore
      old-focus-state)))