From 62b9b63af813ef950fdf66b350f4c0f3fa65d6fc Mon Sep 17 00:00:00 2001 From: Bastien Date: Fri, 7 Feb 2020 17:06:38 +0100 Subject: [PATCH] org-table.el: Fix removal of the table header * lisp/org-table.el (org-table-header-set-header): Ensure the table header overlay is correctly deleted. Lessen the timer. --- lisp/org-table.el | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/lisp/org-table.el b/lisp/org-table.el index 2000cffb8..f3c350c0b 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -471,25 +471,26 @@ This may be useful when columns have been shrunk." "Display the header of the table at point." (when (overlayp org-table-header-overlay) (delete-overlay org-table-header-overlay)) - (when (org-at-table-p) - (run-with-timer - 0.01 nil - (lambda () - (let* ((ws (window-start)) - (beg (save-excursion - (goto-char (org-table-begin)) - (while (or (org-at-table-hline-p) - (looking-at-p ".*|\\s-+<[rcl]?\\([0-9]+\\)?>")) - (move-beginning-of-line 2)) - (point))) - (end (save-excursion (goto-char beg) (point-at-eol)))) - (when (not (pos-visible-in-window-p beg)) - (setq org-table-header-overlay - (make-overlay ws (+ ws (- end beg)))) - (org-overlay-display - org-table-header-overlay - (org-table-row-get-visible-string beg) - 'org-table-header))))))) + (run-with-timer + 0.001 nil + (if (not (org-at-table-p)) + (when (overlayp org-table-header-overlay) + (delete-overlay org-table-header-overlay)) + (let* ((ws (window-start)) + (beg (save-excursion + (goto-char (org-table-begin)) + (while (or (org-at-table-hline-p) + (looking-at-p ".*|\\s-+<[rcl]?\\([0-9]+\\)?>")) + (move-beginning-of-line 2)) + (point))) + (end (save-excursion (goto-char beg) (point-at-eol)))) + (when (not (pos-visible-in-window-p beg)) + (setq org-table-header-overlay + (make-overlay ws (+ ws (- end beg)))) + (org-overlay-display + org-table-header-overlay + (org-table-row-get-visible-string beg) + 'org-table-header)))))) ;;;###autoload (defvar-local org-table-header-line-mode nil) @@ -499,10 +500,10 @@ This may be useful when columns have been shrunk." (unless (eq major-mode 'org-mode) (user-error "Cannot turn org table header mode outside org-mode buffers")) (if org-table-header-line-mode - (add-hook 'post-command-hook 'org-table-header-set-header nil t) + (add-hook 'post-command-hook #'org-table-header-set-header nil t) (when (overlayp org-table-header-overlay) (delete-overlay org-table-header-overlay)) - (remove-hook 'post-command-hook 'org-table-header-set-header t))) + (remove-hook 'post-command-hook #'org-table-header-set-header t))) ;;; Regexps Constants