                               :store-idx! (fn [idx]
                                             (om/set-state! owner :drop-idx idx))}
                        :fn (fn [page]
-                             (mark-page-selected page (:selected selection)))}))]]))
+                             (-> page
+                                 (assoc :dragover? (= drop-idx (:idx page) ))
+                                 (mark-page-selected (:selected selection))))}))]]))
 
 (defn ^:private inbox-handle-drop! [state owner page-cache target source page-ids target-idx]
   (let [columns (om/get-state owner :columns)

                                 (.preventDefault e)))
               :on-drag-start (partial column-drag-start state column owner)
               :on-drag-end (fn [_] (println "on-drag-end"))
               :on-drop (fn [e]
                          (println "on-drop")
                          (let [source-column (get-transfer-data e "application/x-pepa-column")

    (assert (number? document-id))
    (api/fetch-documents! [document-id])))

(defn- inbox-page-drag-over [page owner store-idx! e]
  ;; Calculcate the center position for this image and set idx to the
  ;; current page or the page after, respectively
  (let [rect (.getBoundingClientRect (.-currentTarget e))
        top (.-top rect)
        height (.-height rect)
        local (Math/abs (- (.-clientY e) top))
        idx (if (>= (/ height 2) local)
              (:idx page)
              (inc (:idx page)))]
    (store-idx! idx)))

;;; NOTE: We need on-drag-start in `inbox-column' and in
;;; `inbox-column-page' (the latter to handle selection-updates when
;;; dragging). We bubble it from `inbox-column-page', adding its own
;;; `:id' and use that id to update the selection information.
(ui/defcomponent inbox-column-page [page owner {:keys [page-click! store-idx!]}]
  (render [_]
    [:li.page {:draggable true
               :class (let [selected? (:selected? page)]
                        [(when selected? "selected")
                         (when (and (not selected?) (:dragover? page)) "dragover")])
               :on-drag-start (fn [e]
                                (println "inbox-column-page")
                                (.setData e.dataTransfer "application/x-pepa-page" (:id page)))
               :on-drag-over (partial inbox-page-drag-over page owner store-idx!)
               :on-click (fn [e]
                           (page-click!
                            (selection/event->click (:id page) e))
