From 64198261f7a5e8c07f0ccf2dcac5b81d8ef77b7f Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sat, 19 Jul 2025 15:20:45 +0200 Subject: [PATCH] Fix equality check for default task when continuing the clock The markers involved in this check might point to the same heading, but on different positions. Try to mitigate this by checking for equality of the ID property. --- site-lisp/db-org.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/site-lisp/db-org.el b/site-lisp/db-org.el index d89eec2..6265e68 100644 --- a/site-lisp/db-org.el +++ b/site-lisp/db-org.el @@ -518,11 +518,13 @@ user for the next task to clock into." ((and (markerp org-clock-interrupted-task) (marker-buffer org-clock-interrupted-task) ;; Ensure that interrupted task is not the default task; in this case, we prefer to - ;; continue with parent tasks instead. + ;; continue with parent tasks instead. We check equality of tasks by comparing + ;; their ID properties, to avoid comparing misplaced marker that actually point to + ;; the same heading. (or (not (markerp org-clock-default-task)) (not (marker-buffer org-clock-default-task)) - (not (= org-clock-interrupted-task - org-clock-default-task))) + (not (string= (org-with-point-at org-clock-interrupted-task (org-id-get-create)) + (org-with-point-at org-clock-default-task (org-id-get-create))))) (org-with-point-at org-clock-interrupted-task (not (member (nth 2 (org-heading-components)) org-done-keywords))))