diff options
author | Bastien <bzg@gnu.org> | 2020-02-11 21:42:54 +0100 |
---|---|---|
committer | Bastien <bzg@gnu.org> | 2020-02-11 21:42:54 +0100 |
commit | 99f5f0ce1e0b77a84b8add5b754b3cb8c30cb4ba (patch) | |
tree | bcc297155fe74f0d5ca7ef873fdd9753b7a17f10 | |
parent | fa707c4cf1100e5613dd452a5dffd15984d05601 (diff) | |
download | org-mode-99f5f0ce1e0b77a84b8add5b754b3cb8c30cb4ba.tar.gz |
org-table.el: Don't run table header mode with a timer
* lisp/org-table.el (org-table-header-set-header): Don't run
with a timer.
-rw-r--r-- | lisp/org-table.el | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/lisp/org-table.el b/lisp/org-table.el index e564620..c422f83 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -471,30 +471,25 @@ 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)) - (run-with-timer - 0.01 nil - (lambda () - (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))))))) + (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)))) + (if (pos-visible-in-window-p beg) + (when (overlayp org-table-header-overlay) + (delete-overlay org-table-header-overlay)) + (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) (define-minor-mode org-table-header-line-mode "Display the first row of the table at point in the header line." nil " TblHeader" nil @@ -503,7 +498,8 @@ This may be useful when columns have been shrunk." (if org-table-header-line-mode (add-hook 'post-command-hook #'org-table-header-set-header nil t) (when (overlayp org-table-header-overlay) - (delete-overlay org-table-header-overlay)) + (delete-overlay org-table-header-overlay) + (setq org-table-header-overlay nil)) (remove-hook 'post-command-hook #'org-table-header-set-header t))) |