Refactor refiling code

Allow C-2 C-c C-w to work in the agenda.

Update agenda after refiling
  This rebuilds the agenda buffer after the refile operation completes.
  It was removing the to-be-refiled task before prompting for the location
  which felt a little strange.  While on the prompt you can't see
  the task you are refiling anymore since it was just removed from the
  agenda list and if you aborted from the refile operation
  with C-g then the task to be refiled has already been removed.
This commit is contained in:
Bernt Hansen 2010-03-28 16:06:42 -04:00
parent d21b9155eb
commit 84e8434337
1 changed files with 4 additions and 7 deletions

View File

@ -6207,18 +6207,15 @@ If this information is not given, the function uses the tree at point."
(let* ((marker (or (org-get-at-bol 'org-hd-marker)
(org-agenda-error)))
(buffer (marker-buffer marker))
(pos (marker-position marker))
(rfloc (or rfloc
(org-refile-get-location
(if goto "Goto: " "Refile to: ") buffer
org-refile-allow-creating-parent-nodes))))
(pos (marker-position marker)))
(with-current-buffer buffer
(save-excursion
(save-restriction
(widen)
(goto-char marker)
(org-remove-subtree-entries-from-agenda)
(org-refile goto buffer rfloc)))))))
(org-refile goto buffer rfloc)
(with-current-buffer "*Org Agenda*"
(org-agenda-redo))))))))
(defun org-agenda-open-link (&optional arg)
"Follow the link in the current line, if any.