diff --git a/lisp/org-macs.el b/lisp/org-macs.el index d3e5932e8..4658d5764 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -193,8 +193,16 @@ because otherwise all these markers will point to nowhere." (when local-variables (org-with-wide-buffer (goto-char (point-max)) - (unless (bolp) (insert "\n")) - (insert local-variables)))))) + ;; If last section is folded, make sure to also hide file + ;; local variables after inserting them back. + (let ((overlay + (cl-find-if (lambda (o) + (eq 'outline (overlay-get o 'invisible))) + (overlays-at (1- (point)))))) + (unless (bolp) (insert "\n")) + (insert local-variables) + (when overlay + (move-overlay overlay (overlay-start overlay) (point-max))))))))) (defmacro org-no-popups (&rest body) "Suppress popup windows and evaluate BODY."