Russell Adams <rlad...@adamsinfoserv.com> writes: > On Thu, Jun 22, 2017 at 08:27:41PM -0400, Kyle Meyer wrote:
>> Testing with 9.0.5 and 9.0.9, I see a "TODO state changed to DONE" >> message in the echo area, which I think is what you're referring to. >> Not sure what the issue would be. You could check if you see the >> message in your *Messages* buffer. If you do, then a subsequent message >> is may be masking it. You could also debug org-todo to verify that the >> "(message "TODO state changed to %s" (org-trim next))" line is being >> executed. > > I just tested it again, and the key is if the headline is on the screen I see > a status message. If the headline is off > screen there is no update on the status line. That's why it's an annoyance, I > have to scroll back several screens to > confirm it changes to DONE. I see. With the headline off the screen, I can reproduce this. I've bisected it down to dd17e9d29 (org.el (org-todo): When changing from one state to the same state, throw a more accurate message, 2014-05-31). That change seems to have unintentionally reversed the visibility check, which should be -- >8 -- diff --git a/lisp/org.el b/lisp/org.el index 1e6d00973..d9b6489ff 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -12681,7 +12681,7 @@ (defun org-todo (&optional arg) (replace-match next t t) (cond ((equal this org-state) (message "TODO state was already %s" (org-trim next))) - ((pos-visible-in-window-p hl-pos) + ((not (pos-visible-in-window-p hl-pos)) (message "TODO state changed to %s" (org-trim next)))) (unless head (setq head (org-get-todo-sequence-head org-state)