                                                    (danny--longest-line-length (funcall (danny--framed-ivy-source-collection source)
                                                                                         nil nil nil)))
                                               (1+ (length (danny--framed-ivy-source-prompt source)))))))))
+        (x-focus-frame frame)
         (ivy-read (danny--framed-ivy-source-prompt source)
                   (danny--framed-ivy-source-collection source)
                   :update-fn (lambda ()


(defvar danny-monitor-dir-path nil "Directory path to monitor.")

(defvar danny--notify-descriptor nil "File notify descriptor.")

(defvar danny--history-hash (ht) "History hashtable.")

(defvar danny--destination-root "~/Downloads/Targets")

(defvar danny--history-path "~/.danny")

(cl-defstruct
    danny-destination-root
  name
  path)

(defun danny-stop-monitoring ()
  (interactive)

    (let* ((unwind (lambda ()
                     (delete-frame)
                     (other-window 1))))
      (danny--framed-ivy-read (-concat (list
                                        (make-danny--framed-ivy-source :prompt (format "Open? (%s) " (f-filename file-path))
                                                                       :action (danny--create-open-action-fun file-path)
                                                                       :collection (lambda (str pred v)
                                                                                     '())
                                                                       :unwind unwind)
                                        (make-danny--framed-ivy-source :prompt (format "Save in Recent (%s): " (f-filename file-path))
                                                                       :action (danny--create-move-action-fun file-path)
                                                                       :collection (lambda (str pred v)
                                                                                     (danny--last-destinations))
                                                                       :unwind unwind))
                                       (-map (lambda (root)
                                               (make-danny--framed-ivy-source :prompt (format "Save in \"%s\" (%s): "
                                                                                              (danny-destination-root-name root)
                                                                                              (f-filename file-path))
                                                                              :action (danny--create-move-action-fun file-path)
                                                                              :collection (lambda (str pred v)
                                                                                            (f-directories (danny-destination-root-dpath root)
                                                                                                           nil
                                                                                                           (danny-destination-root-recursive root)))
                                                                              :unwind unwind))
                                             danny-destination-roots))))))

(cl-defstruct
    danny--framed-ivy-source
