浏览代码

org-agenda.el: Fix bug when using `org-agenda-do-date-later' in filtered agendas

* org-agenda.el (org-agenda-filter-hide-line): Hide from the
beginning of the line to the beginning of the next line.
(org-agenda-show-new-time): Use `move-beginning-of-line' and
`move-end-of-line'.
(org-agenda-drag-line-forward): Adapt to the new definition of
hidden filtered lines.

Thanks to Igor Sosa Mayor for reporting this bug and to Nick Dokos
and Matt Lundin for providing further information.
Bastien Guerry 11 年之前
父节点
当前提交
3559ff84b2
共有 1 个文件被更改,包括 14 次插入12 次删除
  1. 14 12
      lisp/org-agenda.el

+ 14 - 12
lisp/org-agenda.el

@@ -7658,8 +7658,8 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags."
 (defun org-agenda-filter-hide-line (type)
   "Hide lines with TYPE in the agenda buffer."
   (let (ov)
-    (setq ov (make-overlay (max (point-min) (1- (point-at-bol)))
-			   (point-at-eol)))
+    (setq ov (make-overlay (max (point-min) (point-at-bol))
+			   (1+ (point-at-eol))))
     (overlay-put ov 'invisible t)
     (overlay-put ov 'type type)
     (cond ((eq type 'tag) (push ov org-agenda-tag-filter-overlays))
@@ -9177,8 +9177,8 @@ Called with a universal prefix arg, show the priority instead of setting it."
              (1- (point)) (point-at-eol)
 	     (list 'display (org-add-props stamp nil
 			      'face 'secondary-selection))))
-	  (beginning-of-line 1))
-	(beginning-of-line 0)))))
+	  (move-beginning-of-line 1))
+	(move-beginning-of-line 0)))))
 
 (defun org-agenda-date-prompt (arg)
   "Change the date of this item.  Date is prompted for, with default today.
@@ -9940,23 +9940,25 @@ current HH:MM time."
   "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)
+  (let ((inhibit-read-only t) lst)
     (if (or (not (get-text-property (point) 'txt))
 	    (save-excursion
 	      (dotimes (n arg)
 		(move-beginning-of-line (if backward 0 2))
+		(forward-char 1)
 		(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))))
+	(message "Cannot move line %s" (if backward "backward" "forward"))
+      (let ((end (save-excursion (move-end-of-line 1) (point)))
+	    (col (current-column)) line)
 	(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)
+	(delete-region (point) (1+ end))
+	(move-end-of-line (funcall (if backward '1- '1+) (1- arg)))
+	(insert "\n" line)
+	(org-move-to-column col)
 	(org-agenda-reapply-filters)
-	(org-agenda-mark-clocking-task)
-	(move-beginning-of-line 0)))))
+	(org-agenda-mark-clocking-task)))))
 
 (defun org-agenda-drag-line-backward (arg)
   "Drag an agenda line backward by ARG lines."