Function: org-agenda-drag-line-forward

org-agenda-drag-line-forward is an interactive and byte-compiled function defined in org-agenda.el.gz.

Signature

(org-agenda-drag-line-forward ARG &optional BACKWARD)

Documentation

Drag an agenda line forward by ARG lines.

When the optional argument backward is non-nil, move backward.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-agenda.el.gz
(defun org-agenda-drag-line-forward (arg &optional backward)
  "Drag an agenda line forward by ARG lines.
When the optional argument `backward' is non-nil, move backward."
  (interactive "p")
  (let ((inhibit-read-only t) lst line)
    (if (or (not (get-text-property (point) 'txt))
	    (save-excursion
	      (dotimes (_ arg)
		(move-beginning-of-line (if backward 0 2))
		(push (not (get-text-property (point) 'txt)) lst))
	      (delq nil lst)))
	(message "Cannot move line forward")
      (let ((end (save-excursion (move-beginning-of-line 2) (point))))
	(move-beginning-of-line 1)
	(setq line (buffer-substring (point) end))
	(delete-region (point) end)
	(move-beginning-of-line (funcall (if backward '1- '1+) arg))
	(insert line)
	(org-agenda-reapply-filters)
	(org-agenda-mark-clocking-task)
	(move-beginning-of-line 0)))))