      (u/call! object# ~k ~@options)))
 
 (defn ^:private gesture-listener
-  [{:keys [on-fling on-long-press on-pan on-pan-stop on-pinch on-tap on-zoom]}
+  [{:keys [on-fling on-long-press on-pan on-pan-stop on-pinch on-tap on-zoom pinch-stop]}
    execute-fn!]
   (reify GestureDetector$GestureListener
     (fling [this vx vy b]


(defn ^:private input-processor
  [{:keys [on-key-down on-key-typed on-key-up on-mouse-moved
           on-scrolled on-touch-down on-touch-dragged on-touch-up]}
   execute-fn!]
  (reify InputProcessor
    (keyDown [this k]

      (some? on-long-press))
    (pan [this x y dx dy]
      (execute-fn! on-pan {:input-x x :input-y y :delta-x dx :delta-y dy})
      false)
    (panStop [this x y p b]
      (execute-fn! on-pan-stop {:input-x x :input-y y :pointer p :button b})
      false)
    (pinchStop [this]
      (execute-fn! pinch-stop
                   {})
      false)
    (pinch [this ip1 ip2 p1 p2]
      (execute-fn! on-pinch
                   {:initial-pointer-1 ip1 :initial-pointer-2 ip2
                    :pointer-1 p1 :pointer-2 p2})
      false)
    (tap [this x y c b]
      (execute-fn! on-tap {:input-x x :input-y y :count c :button b})
      false)
    (touchDown [this x y p b]
      false)
    (zoom [this id d]
      (execute-fn! on-zoom {:initial-distance id :distance d})
      false)))

(defn ^:private gesture-detector
  [options execute-fn!]
