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

      (assoc-in [:mouse-down] false)
      (assoc-in [:editing-eids :editing-eids] #{}))))

(defn mouse-depressed-intents [state button ctrl?]
  (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?]}] previous-state current-state]
  ;; use previous state so that we're consistent with the control-event
  (let [intents (mouse-depressed-intents previous-state button ctrl? shift?)]
    (doseq [intent intents]
      (case intent
        :finish-text-layer (handle-text-layer-finished-after current-state)
