 (defui tabset-ui [this]
   [:div.tabset {:style {:width (bound (subatom this :width) ->perc)}}
    [:div.list
-    (bound this #(when-not (:no-redraw %)
-                   (objs-list this (:objs %))))]
+    (bound this #(objs-list this (:objs %)))]
    [:div.items
     (map-bound (partial tabbed-item (subatom this :active-obj)) this {:path [:objs]})]
    (vertical-grip this)]

   (when-let [cur-tabset (or ts (ctx/->obj :tabset))]
     (object/add-tags obj [:tabset.tab])
     (object/update! cur-tabset [:objs] conj obj)
     (object/merge! {:no-redraw false})
     (object/merge! obj {::tabset cur-tabset})
     (add-watch (subatom obj [:dirty]) :tabs (fn [_ _ _ cur]
                                               (object/raise cur-tabset :tab.updated)

    (active! obj)))

(defn objs-list [multi objs]
  (let [prev-tabs (filter #(= (:tabset @%) multi) (object/by-tag :tab-label))
        item (crate/html
              [:ul
               (for [[idx o] (map vector (range) objs)
                     :when @o]
                 (object/->content (object/create ::tab-label multi o idx)))])]
    ;;Remove old tabs
    (doseq [tab prev-tabs]
      (object/destroy! tab))
    (js/sortable item (js-obj "axis" "x" "distance" 10  "scroll" false "opacity" 0.9 "connectWith" ".list"))
    (dom/on item "contextmenu" (fn [e]
                                 (object/raise multi :menu! e)))
    (dom/on item "moved" (fn [e] (move-tab multi (.-opts e)) ))
