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.
This commit is contained in:
Bastien Guerry 2014-05-26 14:55:50 +02:00
parent 061904b58e
commit 54ab137689
2 changed files with 8 additions and 18 deletions

View File

@ -2159,7 +2159,8 @@ The following commands are available:
org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode
org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode
org-agenda-show-log org-agenda-start-with-log-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 (easy-menu-change
'("Agenda") "Agenda Files" '("Agenda") "Agenda Files"
(append (append
@ -7652,7 +7653,7 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags."
(e (point-at-eol))) (e (point-at-eol)))
(let ((inhibit-read-only t)) (let ((inhibit-read-only t))
(add-text-properties (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) (defun org-agenda-remove-filter (type)
(interactive) (interactive)
@ -7664,7 +7665,7 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags."
(goto-char pos) (goto-char pos)
(remove-text-properties (remove-text-properties
(point) (next-single-property-change (point) 'org-filter-type) (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) (set (intern (format "org-agenda-%s-filter" (intern-soft type))) nil)
(setq org-agenda-filter-form nil) (setq org-agenda-filter-form nil)
(org-agenda-set-mode-name) (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 (add-text-properties
(1- (point)) (point-at-eol) (1- (point)) (point-at-eol)
(list 'display (org-add-props stamp nil (list 'display (org-add-props stamp nil
'face 'secondary-selection)))) 'face '(secondary-selection default)))))
(beginning-of-line 1)) (beginning-of-line 1))
(beginning-of-line 0))))) (beginning-of-line 0)))))

View File

@ -312,8 +312,7 @@ Works on both Emacs and XEmacs."
(defun org-in-invisibility-spec-p (arg) (defun org-in-invisibility-spec-p (arg)
"Is ARG a member of `buffer-invisibility-spec'?" "Is ARG a member of `buffer-invisibility-spec'?"
(if (consp buffer-invisibility-spec) (if (consp buffer-invisibility-spec)
(member arg buffer-invisibility-spec) (member arg buffer-invisibility-spec)))
nil))
(defmacro org-xemacs-without-invisibility (&rest body) (defmacro org-xemacs-without-invisibility (&rest body)
"Turn off extents with invisibility while executing BODY." "Turn off extents with invisibility while executing BODY."
@ -347,18 +346,8 @@ Works on both Emacs and XEmacs."
"Move to column COLUMN. "Move to column COLUMN.
Pass COLUMN and FORCE to `move-to-column'. Pass COLUMN and FORCE to `move-to-column'.
Pass BUFFER to the XEmacs version of `move-to-column'." Pass BUFFER to the XEmacs version of `move-to-column'."
(let* ((with-bracket-link (let ((buffer-invisibility-spec
(save-excursion (remove '(org-filtered) buffer-invisibility-spec)))
(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))))
(if (featurep 'xemacs) (if (featurep 'xemacs)
(org-xemacs-without-invisibility (org-xemacs-without-invisibility
(move-to-column column force buffer)) (move-to-column column force buffer))