Explorar o código

Fix bug when update timestamps on filtered agenda entries

* org-compat.el (org-in-invisibility-spec-p): Tiny code
cleanup.
(org-move-to-column): Only remove '(org-filtered) from
`buffer-invisibility-spec'.

* org-agenda.el (org-agenda-mode): Add buffer invisibility
specs.
(org-agenda-filter-hide-line, org-agenda-remove-filter): Set
the 'invisible text property to 'org-filtered.
(org-agenda-show-new-time): Add the default face to avoid the
foreground of the last character on the line to leak into the
timestamp notification.

Thanks to Thomas Morgan for reporting this.
Bastien Guerry %!s(int64=11) %!d(string=hai) anos
pai
achega
54ab137689
Modificáronse 2 ficheiros con 8 adicións e 18 borrados
  1. 5 4
      lisp/org-agenda.el
  2. 3 14
      lisp/org-compat.el

+ 5 - 4
lisp/org-agenda.el

@@ -2159,7 +2159,8 @@ The following commands are available:
 	  org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode
 	  org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode
 	  org-agenda-show-log org-agenda-start-with-log-mode))
-
+  (add-to-invisibility-spec '(org-filtered))
+  (add-to-invisibility-spec '(org-link))
   (easy-menu-change
    '("Agenda") "Agenda Files"
    (append
@@ -7652,7 +7653,7 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags."
 	 (e (point-at-eol)))
     (let ((inhibit-read-only t))
       (add-text-properties
-       b e `(invisible t org-filtered t org-filter-type ,type)))))
+       b e `(invisible org-filtered org-filter-type ,type)))))
 
 (defun org-agenda-remove-filter (type)
   (interactive)
@@ -7664,7 +7665,7 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags."
 	(goto-char pos)
 	(remove-text-properties
 	 (point) (next-single-property-change (point) 'org-filter-type)
-	 `(invisible t org-filter-type ,type))))
+	 `(invisible org-filtered org-filter-type ,type))))
     (set (intern (format "org-agenda-%s-filter" (intern-soft type))) nil)
     (setq org-agenda-filter-form nil)
     (org-agenda-set-mode-name)
@@ -9153,7 +9154,7 @@ Called with a universal prefix arg, show the priority instead of setting it."
             (add-text-properties
 	     (1- (point)) (point-at-eol)
 	     (list 'display (org-add-props stamp nil
-			      'face 'secondary-selection))))
+			      'face '(secondary-selection default)))))
 	  (beginning-of-line 1))
 	(beginning-of-line 0)))))
 

+ 3 - 14
lisp/org-compat.el

@@ -312,8 +312,7 @@ Works on both Emacs and XEmacs."
 (defun org-in-invisibility-spec-p (arg)
   "Is ARG a member of `buffer-invisibility-spec'?"
   (if (consp buffer-invisibility-spec)
-      (member arg buffer-invisibility-spec)
-    nil))
+      (member arg buffer-invisibility-spec)))
 
 (defmacro org-xemacs-without-invisibility (&rest body)
   "Turn off extents with invisibility while executing BODY."
@@ -347,18 +346,8 @@ Works on both Emacs and XEmacs."
   "Move to column COLUMN.
 Pass COLUMN and FORCE to `move-to-column'.
 Pass BUFFER to the XEmacs version of `move-to-column'."
-  (let* ((with-bracket-link
-	  (save-excursion
-	    (forward-line 0)
-	    (looking-at (concat "^.*" org-bracket-link-regexp))))
-	 (buffer-invisibility-spec
-	  (cond
-	   ((or (not (derived-mode-p 'org-mode))
-		(and with-bracket-link (org-invisible-p2)))
-	    (remove '(org-link) buffer-invisibility-spec))
-	   (with-bracket-link
-	    (remove t buffer-invisibility-spec))
-	   (t buffer-invisibility-spec))))
+  (let ((buffer-invisibility-spec
+	 (remove '(org-filtered) buffer-invisibility-spec)))
     (if (featurep 'xemacs)
 	(org-xemacs-without-invisibility
 	 (move-to-column column force buffer))