summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2010-08-11 16:10:14 +0200
committerBastien Guerry <bzg@altern.org>2010-08-11 16:10:14 +0200
commita7a842457dd927df9eabc756c4c573720a3a7aa9 (patch)
tree1913157079c260b388cf59d7f4fab4be8fb3959f
parentf0be9ff91bd52c530f0d7556872576eb9803cb38 (diff)
downloadorg-mode-a7a842457dd927df9eabc756c4c573720a3a7aa9.tar.gz
Rebind org-agenda-clock-goto to `J' in the agenda.
* org-agenda.el (org-agenda-clock-goto): Use `\C-c\C-x\C-j' for `org-clock-goto' and `J' for `org-agenda-clock-goto'. If the heading currently clocked in is not listed in the agenda, display this entry in another buffer. If there is no running clock, display a help message. * org-clock.el (org-clock-set-current): append the filename after the heading.
-rw-r--r--lisp/org-agenda.el11
-rw-r--r--lisp/org-clock.el5
2 files changed, 12 insertions, 4 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 72f67cd..3f72609 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -1666,8 +1666,8 @@ The following commands are available:
(org-defkey org-agenda-mode-map "O" 'org-agenda-clock-out)
(org-defkey org-agenda-mode-map "\C-c\C-x\C-x" 'org-agenda-clock-cancel)
(org-defkey org-agenda-mode-map "X" 'org-agenda-clock-cancel)
-(org-defkey org-agenda-mode-map "\C-c\C-x\C-j" 'org-agenda-clock-goto)
-(org-defkey org-agenda-mode-map "J" 'org-clock-goto)
+(org-defkey org-agenda-mode-map "\C-c\C-x\C-j" 'org-clock-goto)
+(org-defkey org-agenda-mode-map "J" 'org-agenda-clock-goto)
(org-defkey org-agenda-mode-map "+" 'org-agenda-priority-up)
(org-defkey org-agenda-mode-map "-" 'org-agenda-priority-down)
(org-defkey org-agenda-mode-map [(shift up)] 'org-agenda-priority-up)
@@ -7150,7 +7150,12 @@ The cursor may be at a date in the calendar, or in the Org agenda."
(if (eq (overlay-get o 'type) 'org-agenda-clocking)
(setq pos (overlay-start o))))
(overlays-in (point-min) (point-max)))
- (if pos (goto-char pos))))
+ (cond (pos (goto-char pos))
+ ;; If the currently clocked entry is not in the agenda
+ ;; buffer, we visit it in another window:
+ (org-clock-current-task
+ (org-switch-to-buffer-other-window (org-clock-goto)))
+ (t (message "No running clock, use `C-c C-x C-j' to jump to the most recent one")))))
(defun org-agenda-diary-entry-in-org-file ()
"Make a diary entry in the file `org-agenda-diary-file'."
diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index 92c29f6..fb22c25 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -1097,7 +1097,10 @@ the clocking selection, associated with the letter `d'."
"Task currently clocked in.")
(defun org-clock-set-current ()
"Set `org-clock-current-task' to the task currently clocked in."
- (setq org-clock-current-task (nth 4 (org-heading-components))))
+ (setq org-clock-current-task
+ (concat (nth 4 (org-heading-components))
+ " (" (file-name-nondirectory (buffer-file-name)) ")")))
+
(defun org-clock-delete-current ()
"Reset `org-clock-current-task' to nil."
(setq org-clock-current-task nil))