Przeglądaj źródła

Continue previous commit

Bastien 5 lat temu
rodzic
commit
e48d106696
1 zmienionych plików z 28 dodań i 32 usunięć
  1. 28 32
      lisp/org-table.el

+ 28 - 32
lisp/org-table.el

@@ -451,8 +451,8 @@ prevents it from hanging Emacs."
 
 
 ;;; Org table electric header minor mode
-(defvar org-table-temp-header-line nil)
-(defvar org-table-temp-header-remapping nil)
+(defvar-local org-table-temp-header-line nil)
+(defvar-local org-table-temp-header-remapping nil)
 
 (defun org-table-row-get-visible-string (&optional pos)
   "Get the visible string of a row.
@@ -475,38 +475,34 @@ Assume `org-table-temp-header-line' already stores the previously
 existing value of `header-line-format' we might want to restore."
   (ignore-errors (require 'face-remap))
   (face-remap-remove-relative org-table-temp-header-remapping)
-  (setq org-table-temp-header-remapping
-	(face-remap-add-relative 'header-line '(:inherit default)))
+  (setq-local org-table-temp-header-remapping
+	      (face-remap-add-relative 'header-line '(:inherit default)))
   (if (not (org-at-table-p))
       (setq header-line-format org-table-temp-header-line)
-    (run-with-timer
-     0.01 nil
-     (lambda ()
-       (let* ((beg (org-table-begin))
-	      ;; Are we using `display-line-numbers-mode'?
-	      (lin (and (boundp 'display-line-numbers-mode)
-			display-line-numbers-mode
-			(line-number-display-width)))
-	      ;; Are we using `org-indent-mode'?
-	      (pre (and (boundp 'org-indent-mode) org-indent-mode
-			(length (get-text-property (point) 'line-prefix))))
-	      (tbeg (save-excursion
-		      (goto-char beg)
-		      (while (or (org-at-table-hline-p)
-				 (looking-at-p ".*|\\s-+<[rcl]?\\([0-9]+\\)?>"))
-			(move-beginning-of-line 2))
-		      (point))))
-	 (if (< tbeg (save-excursion (move-to-window-line 0) (point)))
-	     (setq header-line-format
-		   (concat (propertize " " 'display
-				       '(space :width (+ left-fringe left-margin-width)))
-			   (when lin (propertize (make-string (+ lin 2) 32)
-						 'face 'line-number))
-			   (when pre (make-string pre 32))
-			   (propertize (org-table-row-get-visible-string tbeg)
-				       'face 'org-table-header)))
-	   (setq header-line-format org-table-temp-header-line)))
-       (force-window-update)))))
+    (let* ((beg (org-table-begin))
+	   ;; Are we using `display-line-numbers-mode'?
+	   (lin (and (boundp 'display-line-numbers-mode)
+		     display-line-numbers-mode
+		     (line-number-display-width)))
+	   ;; Are we using `org-indent-mode'?
+	   (pre (and (boundp 'org-indent-mode) org-indent-mode
+		     (length (get-text-property (point) 'line-prefix))))
+	   (tbeg (save-excursion
+		   (goto-char beg)
+		   (while (or (org-at-table-hline-p)
+			      (looking-at-p ".*|\\s-+<[rcl]?\\([0-9]+\\)?>"))
+		     (move-beginning-of-line 2))
+		   (point))))
+      (if (< tbeg (save-excursion (move-to-window-line 0) (point)))
+	  (setq header-line-format
+		(concat (propertize " " 'display
+				    '(space :width (+ left-fringe left-margin-width)))
+			(when lin (propertize (make-string (+ lin 2) 32)
+					      'face 'line-number))
+			(when pre (make-string pre 32))
+			(propertize (org-table-row-get-visible-string tbeg)
+				    'face 'org-table-header)))
+	(setq header-line-format org-table-temp-header-line)))))
 
 ;;;###autoload
 (defvar-local org-table-header-line-mode nil)