On Sat, 16 Jul 2022 at 14:50, Ihor Radchenko <yanta...@gmail.com> wrote: > > Seems like soon I will cross the TINYCHANGE limit, so I will get the > > FSF copyright assignment done. > > Note that FSF should reply within 5 working days. If not, we can help > you to push them.
Thanks! I received the PDF to sign the next day after my email, this will probably take a couple of days more from my side as I'm talking with my employer. > Thanks for the idea, I'm exploring (recursion-depth), > (minibuffer-depth). I will come up with a patch to fix this bug. So, I saved this-command and (recursion-depth) value, and I'm checking for it in the org-add-log-note (attaching diff of my changes). But this doesn't guarantee that we are not in the minibuffer when the post-command-hook runs. This is what I did, and it failed after answering the question about 10 repeated intervals: 1. M-: (y-or-n-p "Some question") 2. Now I switched to Org mode buffer. 3. Did C-c C-t on the entry. When org-log-add-setup runs, (recursion-depth) is 1, and (minibuffer-depth) is also 1. Now, the question about 10 repeated intervals is asked, once I answer it, post-command-hook runs. And it runs while we are in the minibuffer waiting for 'Some question'. So, I changed the second condition to (= (minibuffer-depth) 0). This has a different effect when org-todo finishes the execution and we are still in minibuffer: this-command won't be org-todo again unless it is invoked again by the user. org-add-log-note post-command-hook is never removed, and it keeps executing as the condition is not fulfilled. I'm going through the code of org-add-log-note to see if we can avoid calling (delete-other-windows) in the minibuffer. Or move out of minibuffer and then proceed.
diff --git a/lisp/org.el b/lisp/org.el index 3d4de5b4f..978850199 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -10146,6 +10146,8 @@ EXTRA is additional text that will be inserted into the notes buffer." org-log-note-how how org-log-note-extra extra org-log-note-effective-time (org-current-effective-time) + org-log-note-this-command this-command + org-log-note-recursion-depth (recursion-depth) org-log-setup t) (add-hook 'post-command-hook 'org-add-log-note 'append)) @@ -10174,6 +10176,8 @@ EXTRA is additional text that will be inserted into the notes buffer." (defun org-add-log-note (&optional _purpose) "Pop up a window for taking a note, and add this note later." + (when (and (equal org-log-note-this-command this-command) + (= org-log-note-recursion-depth (recursion-depth))) (remove-hook 'post-command-hook 'org-add-log-note) (setq org-log-setup nil) (setq org-log-note-window-configuration (current-window-configuration)) @@ -10204,7 +10208,7 @@ EXTRA is additional text that will be inserted into the notes buffer." (t (error "This should not happen"))))) (when org-log-note-extra (insert org-log-note-extra)) (setq-local org-finish-function 'org-store-log-note) - (run-hooks 'org-log-buffer-setup-hook))) + (run-hooks 'org-log-buffer-setup-hook)))) (defvar org-note-abort nil) ; dynamically scoped (defun org-store-log-note ()