Browse Source

org-timer: Fix timer start from agenda

* lisp/org-timer.el (org-timer--get-timer-title): Return buffer-name
also for agenda lines without complete "org marker".

Reported by Ian Garmaise
https://lists.gnu.org/archive/html/emacs-orgmode/2020-03/msg00004.html
Marco Wahl 5 years ago
parent
commit
abf5ab0944
1 changed files with 16 additions and 16 deletions
  1. 16 16
      lisp/org-timer.el

+ 16 - 16
lisp/org-timer.el

@@ -468,22 +468,22 @@ time is up."
 (defun org-timer--get-timer-title ()
   "Construct timer title.
 Try to use an Org header, otherwise use the buffer name."
-  (cond
-   ((derived-mode-p 'org-agenda-mode)
-    (let* ((marker (or (get-text-property (point) 'org-marker)
-		       (org-agenda-error)))
-	   (hdmarker (or (get-text-property (point) 'org-hd-marker)
-			 marker)))
-      (with-current-buffer (marker-buffer marker)
-	(org-with-wide-buffer
-	 (goto-char hdmarker)
-	 (org-show-entry)
-	 (or (ignore-errors (org-get-heading))
-	     (buffer-name (buffer-base-buffer)))))))
-   ((derived-mode-p 'org-mode)
-    (or (ignore-errors (org-get-heading))
-	(buffer-name (buffer-base-buffer))))
-   (t (buffer-name (buffer-base-buffer)))))
+  (or
+   (cond
+    ((derived-mode-p 'org-agenda-mode)
+     (let* ((marker (or (get-text-property (point) 'org-marker)))
+	    (hdmarker (or (get-text-property (point) 'org-hd-marker)
+			  marker)))
+       (when (and marker (marker-buffer marker))
+	 (with-current-buffer (marker-buffer marker)
+	   (org-with-wide-buffer
+	    (goto-char hdmarker)
+	    (org-show-entry)
+	    (or (ignore-errors (org-get-heading))
+		(buffer-name (buffer-base-buffer))))))))
+    ((derived-mode-p 'org-mode)
+     (ignore-errors (org-get-heading))))
+   (buffer-name (buffer-base-buffer))))
 
 (provide 'org-timer)