Browse Source

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.
Bernt Hansen 15 years ago
parent
commit
84e8434337
1 changed files with 4 additions and 7 deletions
  1. 4 7
      lisp/org-agenda.el

+ 4 - 7
lisp/org-agenda.el

@@ -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.