 (declare handle-text-layer-finished-after)
 
 (defmethod control-event :mouse-depressed
-  [browser-state message [x y {:keys [button type ctrl? shift? outside-canvas?]}] state]
+  [browser-state message [x y {:keys [button type ctrl? shift? meta? outside-canvas?]}] state]
   (if (empty? (:frontend-id-state state))
     state
-    (let [intents (mouse-depressed-intents state button ctrl? shift? outside-canvas?)
+    (let [intents (mouse-depressed-intents state button ctrl? shift? meta? outside-canvas?)
           new-state (-> state
                       (update-mouse x y)
                       (assoc-in [:mouse-down] true)

        (drop-layers)))))

(defmethod post-control-event! :mouse-released
  [browser-state message [x y {:keys [button type ctrl?]}] previous-state current-state]
  (let [cast! #(put! (get-in current-state [:comms :controls]) %)
        db           (:db current-state)
        was-drawing? (or (get-in previous-state [:drawing :in-progress?])

     (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])

