浏览代码

Do not issue the 'task should be finished by now' message if the clock is stopped

This patch prevents the org-clock-sound notification and the

   "Task'BLAH' should be finished by now."

message when the termination time is reached and the clock is not
running.

Before this patch spurious notifications and messages were generated when
clocking in a task with estimated effort time remaining.  After clocking
out the task the remaining minutes would tick by and then the sound
and message that the task should be finished were generated - even though
you are not working on it anymore.
Bernt Hansen 16 年之前
父节点
当前提交
e0f9c00f10
共有 1 个文件被更改,包括 11 次插入10 次删除
  1. 11 10
      lisp/org-clock.el

+ 11 - 10
lisp/org-clock.el

@@ -369,16 +369,17 @@ previous clocking intervals."
 (defun org-clock-notify-once-if-expired ()
   "Show notification if we spent more time then we estimated before.
 Notification is shown only once."
-  (let ((effort-in-minutes (org-hh:mm-string-to-minutes org-clock-effort))
-	(clocked-time (org-clock-get-clocked-time)))
-    (if (>= clocked-time effort-in-minutes)
-	(unless org-clock-notification-was-shown
-	  (setq org-clock-notification-was-shown t)
-	  (org-clock-play-sound)
-	  (org-show-notification
-	   (format "Task '%s' should be finished by now. (%s)"
-		   org-clock-heading org-clock-effort)))
-      (setq org-clock-notification-was-shown nil))))
+  (when (marker-buffer org-clock-marker)
+    (let ((effort-in-minutes (org-hh:mm-string-to-minutes org-clock-effort))
+	  (clocked-time (org-clock-get-clocked-time)))
+      (if (>= clocked-time effort-in-minutes)
+	  (unless org-clock-notification-was-shown
+	    (setq org-clock-notification-was-shown t)
+	    (org-clock-play-sound)
+	    (org-show-notification
+	     (format "Task '%s' should be finished by now. (%s)"
+		     org-clock-heading org-clock-effort)))
+	(setq org-clock-notification-was-shown nil)))))
 
 (defun org-show-notification (notification)
   "Show notification. Use libnotify, if available."