                                                                  mode   (cameras/camera-mouse-mode state)]
                                                              (if (= mode :zoom)
                                                                (cameras/set-zoom state (partial + (* -0.002 dy)))
-                                                               (cameras/move-camera state dx (- dy))))))))}
+                                                               (cameras/move-camera state dx (- dy)))))))
+                                 (utils/stop-event event))}
                  (dom/defs nil
                    (dom/pattern #js {:id           "small-grid"
                                      :width        (str (cameras/grid-width camera))


                         :onSubmit (fn [e]
                                     (cast! :text-layer-finished)
                                     false)
                         :onKeyDown #(cond (= "Enter" (.-key %))
                                           (do (cast! :text-layer-finished)
                                               false)

                                           (= "Escape" (.-key %))
                                           (do (cast! :cancel-drawing)
                                               false)

                                           :else nil)}
                    ;; TODO: experiment with a contentEditable div

                         :onWheel #(.stopPropagation %)
                         :onSubmit (fn [e]
                                     (cast! :layer-properties-submitted)
                                     (utils/stop-event e))
                         :onKeyDown #(when (= "Enter" (.-key %))
                                       (cast! :layer-properties-submitted)
                                       (utils/stop-event %))}
                    (dom/input #js {:type "text"
                                    :ref "id-input"
                                    :className "layer-property-id"
