      (and (not= type "touchend")
           (not= button 2)
           (not (and (= button 0) ctrl?))
+          (not (and (= button 0) meta?))
           (get-in current-state [:radial :open?]))
      (cast! [:radial-closed])
 

  (-> state
    (assoc-in [:pan :position] {:x x :y y})))

(defn mouse-depressed-intents [state button ctrl? shift? outside-canvas?]
  (let [tool (get-in state state/current-tool-path)
        drawing-text? (and (keyword-identical? :text tool)
                           (get-in state [:drawing :in-progress?]))]

              new-state intents))))

(defmethod post-control-event! :mouse-depressed
  [browser-state message [x y {:keys [button ctrl? shift? meta? outside-canvas?]}] previous-state current-state]
  (when-not (empty? (:frontend-id-state previous-state))
    ;; use previous state so that we're consistent with the control-event
    (let [intents (mouse-depressed-intents previous-state button ctrl? shift? meta? outside-canvas?)]
      (doseq [intent intents]
        (case intent
          :finish-text-layer (handle-text-layer-finished-after previous-state current-state)
