Function: org-resolve-clocks-if-idle

org-resolve-clocks-if-idle is a byte-compiled function defined in org-clock.el.gz.

Signature

(org-resolve-clocks-if-idle)

Documentation

Resolve all currently open Org clocks.

This is performed after org-clock-idle-time minutes, to check if the user really wants to stay clocked in after being idle for so long.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-clock.el.gz
(defun org-resolve-clocks-if-idle ()
  "Resolve all currently open Org clocks.
This is performed after `org-clock-idle-time' minutes, to check
if the user really wants to stay clocked in after being idle for
so long."
  (when (and org-clock-idle-time (not org-clock-resolving-clocks)
	     org-clock-marker (marker-buffer org-clock-marker))
    (let* ((org-clock-user-idle-seconds (org-user-idle-seconds))
	   (org-clock-user-idle-start
	    (time-since org-clock-user-idle-seconds))
	   (org-clock-resolving-clocks-due-to-idleness t))
      (when (> org-clock-user-idle-seconds (* 60 org-clock-idle-time))
          (cancel-timer org-clock-idle-timer)
          (setq org-clock-idle-timer nil)
	  (org-clock-resolve
	   (cons org-clock-marker
		 org-clock-start-time)
	   (lambda (_)
	     (format "Clocked in & idle for %.1f mins"
		     (/ (float-time
			 (time-since org-clock-user-idle-start))
			60)))
	   org-clock-user-idle-start)
          (when (and (org-clocking-p) (not org-clock-idle-timer))
            (setq org-clock-idle-timer
                  (run-with-timer 60 60 #'org-resolve-clocks-if-idle)))))))