   "Activate the arrow buttons for directions in which scrolling is
   possible."
   [controller]
-  (if @(:shift-mode controller)
+  (if (in-mode? controller :shift)
     ;; In shift mode, scroll through the effects list
     (let [[offset max-offset] (find-effect-offset-range controller)]
       ;; If there is an offset, user can scroll to the right

  [controller message]
  (let [delta (sign-velocity (:velocity message))
        metronome (:metronome (:show controller))
        units (if @(:shift-mode controller)
                ;; User is adjusting the current bar
                (rhythm/metro-tock metronome)
                ;; User is adjusting the current beat

               :next-grid-pads       (make-array clojure.lang.IPersistentMap 64)
               :metronome-mode       (atom {})
               :last-marker          (atom nil)
               :modes                modes
               :midi-handler         (atom nil)
               :deactivate-handler   (atom nil)
               :tempo-tap-handler    (tempo/create-show-tempo-tap-handler
                                      show :shift-fn (fn [] (get @modes (get-in control-buttons [:shift :control]))))
               :overlays             (controllers/create-overlay-state)
               :move-listeners       (atom #{})
               :grid-controller-impl (atom nil)}
