emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [PATCH 2/3] Honour existing restrictions when clocking in from t


From: Matt Lundin
Subject: Re: [O] [PATCH 2/3] Honour existing restrictions when clocking in from the agenda
Date: Thu, 19 Jan 2012 07:43:12 -0600
User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.92 (gnu/linux)

Hi Bernt,

Bernt Hansen <address@hidden> writes:

> * lisp/org-agenda.el (org-agenda-clock-in): Save restriction when clocking in 
> from the agenda
>
> Narrowed org buffers are now retained when clocking in from the agenda.
> We only widen the buffer when the task to clock in is outside the existing
> restriction.

It seems that adding save-restriction to org-agenda-clock-in causes the
following:

When one clocks in from the agenda, all preexisting drawers in a buffer
are aligned to org-tags-column (i.e., the right side of the file).

I can confirm this using emacs -Q. 

Here's a sample file. Before clocking in it looks like this:

--8<---------------cut here---------------start------------->8---
* A headline
  SCHEDULED: <2012-01-18 Wed +1d>
  :LOGBOOK:
  CLOCK: [2012-01-18 Wed 20:10]--[2012-01-19 Thu 07:18] => 11:08
  :END:
  :PROPERTIES:
  :HELLO: there
  :END:
* And another
  :PROPERTIES:
  :NOW: and again
  :END:
--8<---------------cut here---------------end--------------->8---

After clocking in from the agenda -- (org-agenda-clock-in) -- the file
looks like this:

--8<---------------cut here---------------start------------->8---
* A headline
  SCHEDULED: <2012-01-18 Wed +1d>
                                                                       :LOGBOOK:
  CLOCK: [2012-01-19 Thu 07:19]
  CLOCK: [2012-01-18 Wed 20:10]--[2012-01-19 Thu 07:18] => 11:08
                                                                           :END:
                                                                    :PROPERTIES:
  :HELLO: there
                                                                           :END:
* And another
                                                                    :PROPERTIES:
  :NOW: and again
                                                                           :END:
--8<---------------cut here---------------end--------------->8---

Strangely (though not demonstrated in the above example), all tags in
the buffer are also realigned.

Note: org-indent-mode is not on. My emacs version is:

GNU Emacs 24.0.92.1 (i686-pc-linux-gnu, GTK+ Version 2.24.8) of
2012-01-18 on archeee

Org-version:

release_7.8.03-149-g46ff3
Org-mode version 7.8.03 (release_7.8.03.149.g46ff3)

Best, 
Matt

P.S. I hope all on the list are doing well. I look forward to
participating more in the near future.

Bernt Hansen <address@hidden> writes:

> * lisp/org-agenda.el (org-agenda-clock-in): Save restriction when clocking in 
> from the agenda
>
> Narrowed org buffers are now retained when clocking in from the agenda.
> We only widen the buffer when the task to clock in is outside the existing
> restriction.
> ---
>  lisp/org-agenda.el |   17 +++++++++--------
>  1 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
> index 780794e..f240f5e 100644
> --- a/lisp/org-agenda.el
> +++ b/lisp/org-agenda.el
> @@ -7797,14 +7797,15 @@ The cursor may be at a date in the calendar, or in 
> the Org agenda."
>          newhead)
>        (org-with-remote-undo (marker-buffer marker)
>          (with-current-buffer (marker-buffer marker)
> -       (widen)
> -       (goto-char pos)
> -       (org-show-context 'agenda)
> -       (org-show-entry)
> -       (org-cycle-hide-drawers 'children)
> -       (org-clock-in arg)
> -       (setq newhead (org-get-heading)))
> -     (org-agenda-change-all-lines newhead hdmarker)))))
> +       (save-restriction
> +         (widen)
> +         (goto-char pos)
> +         (org-show-context 'agenda)
> +         (org-show-entry)
> +         (org-cycle-hide-drawers 'children)
> +         (org-clock-in arg)
> +         (setq newhead (org-get-heading)))
> +       (org-agenda-change-all-lines newhead hdmarker))))))
>  
>  (defun org-agenda-clock-out ()
>    "Stop the currently running clock."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]