branch: elpa/magit
commit 725efbd24964819cce3f09ab1aec0eb318a326eb
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    magit-refresh-buffer: Reset magit-section-focused-sections
    
    This variable is also reset in `magit-section-pre-command-hook' but that
    only affects the current buffer.  We also have to reset this cache when
    refreshing a buffer, otherwise it would continue to track sections from
    the previous generation, which no longer exist.
    
    For example, if point is on an unstage hunk in the status and the user
    invokes a commit command, then the commit message buffer is current when
    the commit is finalized.  In that case `magit-section-update-paint' was
    called for two section in the status buffer; the previous generation
    hunk (which ended up being a noop) and the actually focused hunk (which
    was not included in the value returned by `magit-focused-sections',
    because that cache had not been invalidated yet, and thus got painted
    as unfocused).
---
 lisp/magit-mode.el    | 1 +
 lisp/magit-section.el | 1 +
 2 files changed, 2 insertions(+)

diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index d53e468bfe..d8e00d055f 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -1099,6 +1099,7 @@ Run hooks `magit-pre-refresh-hook' and 
`magit-post-refresh-hook'."
         (setq magit-section-highlight-overlays nil)
         (setq magit-section-selection-overlays nil)
         (setq magit-section-highlighted-sections nil)
+        (setq magit-section-focused-sections nil)
         (let ((inhibit-read-only t))
           (erase-buffer)
           (save-excursion
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index e162982a13..bac89376a2 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -306,6 +306,7 @@ no effect.  This also has no effect for Emacs >= 28, where
 
 (defvar-local magit-section-pre-command-region-p nil)
 (defvar-local magit-section-pre-command-section nil)
+
 (defvar-local magit-section-highlight-force-update nil)
 (defvar-local magit-section-highlight-overlays nil)
 (defvar-local magit-section-selection-overlays nil)

Reply via email to