* lisp/org-agenda.el (org-agenda-mode): Only set `org-agenda-show-log'
and `org-agenda-clock-report-mode' to their default values when
constructing an agenda buffer, and not when redoing it.
* lisp/org-agenda.el (org-agenda-log-mode,
org-agenda-clockreport-mode): Do not set the global default value
`org-agenda-start-with-log-mode' (respectively
`org-agenda-start-with-clockreport-mode') with the current value of
`org-agenda-log-mode' (respectively `org-agenda-clockreport-mode'),
which, with sticky agendas is even buffer local.
`org-agenda-show-log' indicates if the the current agenda buffer has
log-mode enabled. When building a new agenda buffer, it gets its
value from `org-agenda-start-with-log-mode'. It is is semantically a
buffer local variable: when creating a new agenda buffer you expect it
to be set to the value in `org-agenda-start-with-log-mode'. However,
2e9c2d71 while fixing an issue with sticky agendas rendered the
variable `org-agenda-log-mode' effectively global: toggling log mode
in a given agenda buffer modifies the global default for all agenda
buffers. The same reasoning holds for clockreport mode.
This change ensures that a log or clockreport mode change made in one
agenda buffer does not propagate to other agenda buffers, existing or
new. The change is however preserved on org-agenda-redo in the
initial agenda buffer, whether using sticky agendas or not.
TINYCHANGE
* lisp/org.el (org-mode): Add special invisibility spec for drawers.
(org-show-set-visibility): Handle new invisibility spec.
(org-clean-visibility-after-subtree-move): Fix argument for
`org-cycle-hide-drawers'. `overview' is a no-op.
(org-cycle-hook):
(org-cycle-internal-local):
(org-flag-drawer):
(org-move-subtree-down):
(org-show-entry):
* lisp/org-agenda.el (org-agenda-clock-in):
* lisp/org-clock.el (org-clock-goto):
* lisp/org-feed.el (org-feed-update):
* lisp/org-inlinetask.el (org-inlinetask-toggle-visibility): Do not hide
drawers when expanding a headline.
Drawers and headlines visibility are now unrelated. As a consequence,
there is no need to hide drawers every time a headline is expanded.
* lisp/org-agenda.el (org-agenda-lprops): New variable.
(org-agenda-local-vars): Add it.
(org-agenda-prepare): Set lprops from symbol property.
(org-agenda-redo): Get lprops from variable, not property.
* lisp/org-agenda.el (org-agenda-bulk-mark): Added bulk mark for entries
in region. This is like in dired now.
* doc/org.texi (Agenda commands): Document bulk mark entries in region
* lisp/org-agenda.el (org-todo-list):
(org-tags-view): Specify the keymap for the substitute-command-keys
call because, as of b6c5a174d, this call is made outside of the agenda
buffer.
The substitute-command-keys call in org-search-view is already taken
care of by 48f333805.
* lisp/org-agenda.el (org-search-view): Specify the keymap for the
substitute-command-keys call because, as of b6c5a174d, this call is
made outside of the agenda buffer.
* lisp/org-agenda.el (org-agenda--insert-overriding-header): Use
propertize instead of org-add-props.
(org-agenda-list): Replace nested if with cond.
(org-todo-list): Replace mapc-lambda with dolist.
(org-todo-list): Fix bug by using window-width instead of frame-width.
* lisp/org-agenda.el (org-agenda--insert-overriding-header): Add macro.
(org-agenda-list)
(org-search-view)
(org-todo-list)
(org-tags-view): Use macro.
(org-agenda-overriding-header): Update docstring.
* etc/ORG-NEWS: Explain that header can be disabled with empty string.
Replace org-agenda-overriding-header tests in these four functions with
calls to a macro, eliminating the duplicate code. Also, disable the
header when the variable is set to the empty string.