forked from mirrors/org-mode
commit
b622300c0c
|
@ -3587,10 +3587,12 @@ generating a new one."
|
||||||
;; does not have org variables local
|
;; does not have org variables local
|
||||||
org-agenda-this-buffer-is-sticky))))
|
org-agenda-this-buffer-is-sticky))))
|
||||||
|
|
||||||
(defun org-agenda-prepare-window (abuf)
|
(defun org-agenda-prepare-window (abuf filter-alist)
|
||||||
"Setup agenda buffer in the window."
|
"Setup agenda buffer in the window.
|
||||||
(let* ((awin (get-buffer-window abuf))
|
ABUF is the buffer for the agenda window.
|
||||||
wconf)
|
FILTER-ALIST is an alist of filters we need to apply when
|
||||||
|
`org-agenda-persistent-filter' is non-nil."
|
||||||
|
(let* ((awin (get-buffer-window abuf)) wconf)
|
||||||
(cond
|
(cond
|
||||||
((equal (current-buffer) abuf) nil)
|
((equal (current-buffer) abuf) nil)
|
||||||
(awin (select-window awin))
|
(awin (select-window awin))
|
||||||
|
@ -3604,66 +3606,70 @@ generating a new one."
|
||||||
((equal org-agenda-window-setup 'reorganize-frame)
|
((equal org-agenda-window-setup 'reorganize-frame)
|
||||||
(delete-other-windows)
|
(delete-other-windows)
|
||||||
(org-switch-to-buffer-other-window abuf)))
|
(org-switch-to-buffer-other-window abuf)))
|
||||||
;; additional test in case agenda is invoked from within agenda
|
(setq org-agenda-tag-filter (cdr (assoc 'tag filter-alist)))
|
||||||
;; buffer via elisp link
|
(setq org-agenda-category-filter (cdr (assoc 'cat filter-alist)))
|
||||||
|
(setq org-agenda-regexp-filter (cdr (assoc 're filter-alist)))
|
||||||
|
;; Additional test in case agenda is invoked from within agenda
|
||||||
|
;; buffer via elisp link.
|
||||||
(unless (equal (current-buffer) abuf)
|
(unless (equal (current-buffer) abuf)
|
||||||
(org-pop-to-buffer-same-window abuf))
|
(org-pop-to-buffer-same-window abuf))
|
||||||
(setq org-agenda-pre-window-conf
|
(setq org-agenda-pre-window-conf
|
||||||
(or org-agenda-pre-window-conf wconf))))
|
(or org-agenda-pre-window-conf wconf))))
|
||||||
|
|
||||||
(defun org-agenda-prepare (&optional name)
|
(defun org-agenda-prepare (&optional name)
|
||||||
(if (org-agenda-use-sticky-p)
|
(let ((filter-alist (if org-agenda-persistent-filter
|
||||||
(progn
|
(list `(tag . ,org-agenda-tag-filter)
|
||||||
;; Popup existing buffer
|
`(re . ,org-agenda-regexp-filter)
|
||||||
(org-agenda-prepare-window (get-buffer org-agenda-buffer-name))
|
`(car . ,org-agenda-category-filter)))))
|
||||||
(message "Sticky Agenda buffer, use `r' to refresh")
|
(if (org-agenda-use-sticky-p)
|
||||||
(or org-agenda-multi (org-agenda-fit-window-to-buffer))
|
|
||||||
(throw 'exit "Sticky Agenda buffer, use `r' to refresh"))
|
|
||||||
(setq org-todo-keywords-for-agenda nil)
|
|
||||||
(unless org-agenda-persistent-filter
|
|
||||||
(setq org-agenda-tag-filter nil
|
|
||||||
org-agenda-category-filter nil
|
|
||||||
org-agenda-regexp-filter nil))
|
|
||||||
(put 'org-agenda-tag-filter :preset-filter
|
|
||||||
org-agenda-tag-filter-preset)
|
|
||||||
(put 'org-agenda-category-filter :preset-filter
|
|
||||||
org-agenda-category-filter-preset)
|
|
||||||
(put 'org-agenda-regexp-filter :preset-filter
|
|
||||||
org-agenda-regexp-filter-preset)
|
|
||||||
(if org-agenda-multi
|
|
||||||
(progn
|
(progn
|
||||||
(setq buffer-read-only nil)
|
;; Popup existing buffer
|
||||||
(goto-char (point-max))
|
(org-agenda-prepare-window (get-buffer org-agenda-buffer-name)
|
||||||
(unless (or (bobp) org-agenda-compact-blocks
|
filter-alist)
|
||||||
(not org-agenda-block-separator))
|
(message "Sticky Agenda buffer, use `r' to refresh")
|
||||||
(insert "\n"
|
(or org-agenda-multi (org-agenda-fit-window-to-buffer))
|
||||||
(if (stringp org-agenda-block-separator)
|
(throw 'exit "Sticky Agenda buffer, use `r' to refresh"))
|
||||||
org-agenda-block-separator
|
(setq org-todo-keywords-for-agenda nil)
|
||||||
(make-string (window-width) org-agenda-block-separator))
|
(put 'org-agenda-tag-filter :preset-filter
|
||||||
"\n"))
|
org-agenda-tag-filter-preset)
|
||||||
(narrow-to-region (point) (point-max)))
|
(put 'org-agenda-category-filter :preset-filter
|
||||||
(setq org-done-keywords-for-agenda nil)
|
org-agenda-category-filter-preset)
|
||||||
|
(put 'org-agenda-regexp-filter :preset-filter
|
||||||
;; Setting any org variables that are in org-agenda-local-vars
|
org-agenda-regexp-filter-preset)
|
||||||
;; list need to be done after the prepare call
|
(if org-agenda-multi
|
||||||
(org-agenda-prepare-window (get-buffer-create org-agenda-buffer-name))
|
(progn
|
||||||
(setq buffer-read-only nil)
|
(setq buffer-read-only nil)
|
||||||
(org-agenda-reset-markers)
|
(goto-char (point-max))
|
||||||
(let ((inhibit-read-only t)) (erase-buffer))
|
(unless (or (bobp) org-agenda-compact-blocks
|
||||||
(org-agenda-mode)
|
(not org-agenda-block-separator))
|
||||||
(setq org-agenda-buffer (current-buffer))
|
(insert "\n"
|
||||||
(setq org-agenda-contributing-files nil)
|
(if (stringp org-agenda-block-separator)
|
||||||
(setq org-agenda-columns-active nil)
|
org-agenda-block-separator
|
||||||
(org-agenda-prepare-buffers (org-agenda-files nil 'ifmode))
|
(make-string (window-width) org-agenda-block-separator))
|
||||||
(setq org-todo-keywords-for-agenda
|
"\n"))
|
||||||
(org-uniquify org-todo-keywords-for-agenda))
|
(narrow-to-region (point) (point-max)))
|
||||||
(setq org-done-keywords-for-agenda
|
(setq org-done-keywords-for-agenda nil)
|
||||||
(org-uniquify org-done-keywords-for-agenda))
|
;; Setting any org variables that are in org-agenda-local-vars
|
||||||
(setq org-agenda-last-prefix-arg current-prefix-arg)
|
;; list need to be done after the prepare call
|
||||||
(setq org-agenda-this-buffer-name org-agenda-buffer-name)
|
(org-agenda-prepare-window
|
||||||
(and name (not org-agenda-name)
|
(get-buffer-ecreate org-agenda-buffer-name) filter-alist)
|
||||||
(org-set-local 'org-agenda-name name)))
|
(setq buffer-read-only nil)
|
||||||
(setq buffer-read-only nil)))
|
(org-agenda-reset-markers)
|
||||||
|
(let ((inhibit-read-only t)) (erase-buffer))
|
||||||
|
(org-agenda-mode)
|
||||||
|
(setq org-agenda-buffer (current-buffer))
|
||||||
|
(setq org-agenda-contributing-files nil)
|
||||||
|
(setq org-agenda-columns-active nil)
|
||||||
|
(org-agenda-prepare-buffers (org-agenda-files nil 'ifmode))
|
||||||
|
(setq org-todo-keywords-for-agenda
|
||||||
|
(org-uniquify org-todo-keywords-for-agenda))
|
||||||
|
(setq org-done-keywords-for-agenda
|
||||||
|
(org-uniquify org-done-keywords-for-agenda))
|
||||||
|
(setq org-agenda-last-prefix-arg current-prefix-arg)
|
||||||
|
(setq org-agenda-this-buffer-name org-agenda-buffer-name)
|
||||||
|
(and name (not org-agenda-name)
|
||||||
|
(org-set-local 'org-agenda-name name)))
|
||||||
|
(setq buffer-read-only nil))))
|
||||||
|
|
||||||
(defvar org-agenda-overriding-columns-format) ; From org-colview.el
|
(defvar org-agenda-overriding-columns-format) ; From org-colview.el
|
||||||
(defun org-agenda-finalize ()
|
(defun org-agenda-finalize ()
|
||||||
|
|
Loading…
Reference in New Issue