[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 2e012db31a: org.el: Make sure `org-add-log-note' ru
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 2e012db31a: org.el: Make sure `org-add-log-note' runs at the end of Org command |
Date: |
Mon, 26 Sep 2022 08:57:58 -0400 (EDT) |
branch: externals/org
commit 2e012db31a8dbae0f859b8fbfc899aeed3e34244
Author: Bhavin Gandhi <bhavin192@geeksocket.in>
Commit: Ihor Radchenko <yantar92@gmail.com>
org.el: Make sure `org-add-log-note' runs at the end of Org command
* lisp/org.el (org-add-log-setup): Save `this-command' and
`recursion-depth' before adding the `org-add-log-note' to
`post-command-hook'.
(org-add-log-note): Execute only if the current `(recursion-depth)'
and `this-command' are same as the ones we saved during the log-setup.
(org-log-note-this-command):
(org-log-note-recursion-depth): New variables storing `this-command'
and `recursion-depth'.
This change tries to make sure that we run the `org-add-log-note' only
after the current Org command has finished executing. Previously, the
`post-command-hook' was getting triggered if the Org command in turn
runs some other command.
Fixes the bug originally reported by Michael Powe.
Bhavin Gandhi. [BUG] org-auto-repeat-maybe: error "Can’t expand
minibuffer to full frame" and missing log note.
Sat, 18 Jun 2022 23:30:50 +0530.
https://list.orgmode.org/CAOn=hbcsOCO++We0XgRHFoxxCEXROCpyGd1nCjzKYy-9LckQZg@mail.gmail.com/
Relevant discussion on bug-gnu-emacs: https://debbugs.gnu.org/56425
---
lisp/org.el | 68 ++++++++++++++++++++++++++++++++++---------------------------
1 file changed, 38 insertions(+), 30 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index b16e99685f..036384a04b 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -10275,6 +10275,10 @@ WHAT entry will also be removed."
"Remembered current time.
So that dynamically scoped `org-extend-today-until' affects
timestamps in state change log.")
+(defvar org-log-note-this-command
+ "`this-command' when `org-add-log-setup' is called.")
+(defvar org-log-note-recursion-depth
+ "`recursion-depth' when `org-add-log-setup' is called.")
(defvar org-log-post-message nil
"Message to be displayed after a log note has been stored.
@@ -10355,6 +10359,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))
@@ -10383,37 +10389,39 @@ 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."
- (remove-hook 'post-command-hook 'org-add-log-note)
- (setq org-log-setup nil)
- (setq org-log-note-window-configuration (current-window-configuration))
- (delete-other-windows)
- (move-marker org-log-note-return-to (point))
- (pop-to-buffer-same-window (marker-buffer org-log-note-marker))
- (goto-char org-log-note-marker)
- (org-switch-to-buffer-other-window "*Org Note*")
- (erase-buffer)
- (if (memq org-log-note-how '(time state))
- (org-store-log-note)
- (let ((org-inhibit-startup t)) (org-mode))
- (insert (format "# Insert note for %s.
+ (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))
+ (delete-other-windows)
+ (move-marker org-log-note-return-to (point))
+ (pop-to-buffer-same-window (marker-buffer org-log-note-marker))
+ (goto-char org-log-note-marker)
+ (org-switch-to-buffer-other-window "*Org Note*")
+ (erase-buffer)
+ (if (memq org-log-note-how '(time state))
+ (org-store-log-note)
+ (let ((org-inhibit-startup t)) (org-mode))
+ (insert (format "# Insert note for %s.
# Finish with C-c C-c, or cancel with C-c C-k.\n\n"
- (cl-case org-log-note-purpose
- (clock-out "stopped clock")
- (done "closed todo item")
- (reschedule "rescheduling")
- (delschedule "no longer scheduled")
- (redeadline "changing deadline")
- (deldeadline "removing deadline")
- (refile "refiling")
- (note "this entry")
- (state
- (format "state change from \"%s\" to \"%s\""
- (or org-log-note-previous-state "")
- (or org-log-note-state "")))
- (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)))
+ (cl-case org-log-note-purpose
+ (clock-out "stopped clock")
+ (done "closed todo item")
+ (reschedule "rescheduling")
+ (delschedule "no longer scheduled")
+ (redeadline "changing deadline")
+ (deldeadline "removing deadline")
+ (refile "refiling")
+ (note "this entry")
+ (state
+ (format "state change from \"%s\" to \"%s\""
+ (or org-log-note-previous-state "")
+ (or org-log-note-state "")))
+ (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))))
(defvar org-note-abort nil) ; dynamically scoped
(defun org-store-log-note ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 2e012db31a: org.el: Make sure `org-add-log-note' runs at the end of Org command,
ELPA Syncer <=