                            (count lines))
               existing-line (< line-index (count lines))
               line (if existing-line (nth lines line-index) #{})
-              cy2 (+ cy (m/y (:clip-size c)))]
+              cy2 (+ cy (m/y (get-property component [:this (:id c)] :clip-size)))]
           (recur
             (if existing-line line-y1 (assoc line-y1 line-index cy))
             (assoc line-y2 line-index (if existing-line (max cy2 (nth line-y2 line-index)) cy2))

           (java.util Comparator)))


(defn accepts-focus? [component]
  (or
    ;; If the component is focusable itself
    (:focusable component)
    ;; If the component has any child to which it can pass focus
    (some (fn [[_ c]] (accepts-focus? c)) (:children component))))

(defn- get-accepting-children [child-map] (filter accepts-focus? (for [[_ v] child-map] v)))

(def component-comparator
  (reify Comparator

                                                       ;; in :throw-mode - use it to determine firt or last
                                                       (if (= :prev (:throw-mode parent-focus-state))
                                                         :last
                                                         :first)
                                                       nil)))]
                                 (focus-child-by-direction child-id (:throw-mode parent-focus-state))
                                 having-focus-state)
                               ;; No change in state but track focus movent direction
