                                                          :first)
                                                        nil)))]
                                  (focus-child-by-direction child-id (:throw-mode parent-focus-state))
-                                 (having-focus-state component (str "from parent " parent-id " that requested")))
+                                 (if (:accepts-focus? component)
+                                   (having-focus-state component (str "from parent " parent-id " that requested"))
+                                   {:mode :throws-focus
+                                    :throw-mode :out-of-cycle-next}))
                                ;; No change in state but track focus movent direction
                                (assoc old-focus-state :throw-mode (:throw-mode parent-focus-state)))
 

         :focused-child this-focused-child}
        (and (:closed-focus-root component) (#{:none :throws-focus :requests-focus} this-mode))
        (having-focus-state component "closed root by mouse")
        (focus-uninterested? component)
        {:mode :got-trigger
         :focused-child nil}
        :else old-focus-state)

      (fgc/parent-reason? reason)

                                              :focused-child this-focused-child})

          :got-trigger (cond
                         ;; Trigger finally made it to focusable
                         (and (:focusable component) (not= :parent-of-focused this-mode)) ;maybe accepts-focus? instead of focusable
                         (having-focus-state component "trigger")
                         ;; Trigger reached non focusable, but one that possibly has where to give focus
                         (or
                           (:closed-focus-root component)
                           (get-in-cycle component :first nil))
                         (if-let [first-to-give (get-in-cycle component :first nil)]
                           (temporarily-taken-from-state component "trigger" first-to-give nil)
                           (got-trigger))
                         ;; Just give chance further
                         :else
                         (got-trigger))))

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