                       current-state
                       animation-observable]
   (let [pinches (pinch-observable manager (:svg @current-state))
-        pinch-ins (-> pinches (.filter #(< (:scale %) 0.8))
-                      (suppress-while-animating animation-observable))
-        pinch-outs (-> pinches (.filter #(> (:scale %) 1.2))
-                       (suppress-while-animating animation-observable))]
+        pinch-ins (-> pinches (.filter #(< (:scale %) 0.8)))
+        pinch-outs (-> pinches (.filter #(> (:scale %) 1.2)))]
     (.subscribe
       pinch-ins
       #(if (= (:projection @current-state) :fisheye)


(def label-y 42)
(def label-y-transform (str "translate(0," label-y ")"))

(def zoom-out-scale 0.25)


          (.each
            (fn [node]
              (this-as elem (add-tap-listener elem #(node-tap-signaller node))))))
      ; Having too many labels at once hurts performance. Add/remove labels as
      ; they move in and out of view.
      (-> node-selection
          ; Nodes within a distance threshold which do not have labels
          (.filter
            (fn [node]
              (this-as elem (and (< (distance-for-node node) label-visible-threshold)
                                 (nil? (.querySelector elem ".node-label"))))))
          (.append "text")
          (.attr "class" "node-label")
          (.attr "dy" ".6em")
          (.style "font-family" label-font)
          (.style "font-size" (str label-font-size))
          (.style "text-anchor" "middle")
          (.attr "y" label-y))
      (-> node-selection
          ; Nodes beyond a distance threshold which do have labels
          (.filter #(>= (distance-for-node %) label-visible-threshold))
          (.selectAll ".node-label")
          (.remove))
      (-> node-selection
          maybe-transition
          (.attr "transform"
