Hello. The org-frame-title-format-backup variable is initialized on org-clock.el loading and future changes to frame-title-format is ignored:
1. emacs -Q 2. M-: frame-title-format It's "%b" 3. M-: (require 'org-clock) 4. (setq frame-title-format "%b bar") 5. C-x b test.org 6. M-x org-mode 7. Insert heading (M-RET foo) 8. M-x org-clock-in 9. M-x org-clock-out 10. M-: frame-title-format It's "%b" again With provided patch org-frame-title-format-backup is initialized on org-clock-in. Also frame-title-format is restored to org-frame-title-format-backup only if current frame-title-format is equal to org-clock-frame-title-format in case frame title format is changed after org-clock-in. diff --git a/lisp/org-clock.el b/lisp/org-clock.el index 9a8928a49..b07f4b221 100644 --- a/lisp/org-clock.el +++ b/lisp/org-clock.el @@ -1359,6 +1359,7 @@ the default behavior." ;; add to frame title (when (or (eq org-clock-clocked-in-display 'frame-title) (eq org-clock-clocked-in-display 'both)) + (setq org-frame-title-format-backup frame-title-format) (setq frame-title-format org-clock-frame-title-format)) (org-clock-update-mode-line) (when org-clock-mode-line-timer @@ -1560,7 +1561,8 @@ to, overriding the existing value of `org-clock-out-switch-to-state'." (when (not (org-clocking-p)) (setq global-mode-string (delq 'org-mode-line-string global-mode-string)) - (setq frame-title-format org-frame-title-format-backup) + (when (equal frame-title-format org-clock-frame-title-format) + (setq frame-title-format org-frame-title-format-backup)) (force-mode-line-update) (if fail-quietly (throw 'exit t) (user-error "No active clock"))) (let ((org-clock-out-switch-to-state @@ -1618,7 +1620,8 @@ to, overriding the existing value of `org-clock-out-switch-to-state'." (setq org-clock-idle-timer nil)) (setq global-mode-string (delq 'org-mode-line-string global-mode-string)) - (setq frame-title-format org-frame-title-format-backup) + (when (equal frame-title-format org-clock-frame-title-format) + (setq frame-title-format org-frame-title-format-backup)) (when org-clock-out-switch-to-state (save-excursion (org-back-to-heading t) @@ -1718,7 +1721,8 @@ Optional argument N tells to change by that many units." (when (not (org-clocking-p)) (setq global-mode-string (delq 'org-mode-line-string global-mode-string)) - (setq frame-title-format org-frame-title-format-backup) + (when (equal frame-title-format org-clock-frame-title-format) + (setq frame-title-format org-frame-title-format-backup)) (force-mode-line-update) (error "No active clock")) (save-excursion ; Do not replace this with `with-current-buffer'. @@ -1734,7 +1738,8 @@ Optional argument N tells to change by that many units." (move-marker org-clock-hd-marker nil) (setq global-mode-string (delq 'org-mode-line-string global-mode-string)) - (setq frame-title-format org-frame-title-format-backup) + (when (equal frame-title-format org-clock-frame-title-format) + (setq frame-title-format org-frame-title-format-backup)) (force-mode-line-update) (message "Clock canceled") (run-hooks 'org-clock-cancel-hook))