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-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)))))

View File

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