Don't preserve window-line in tabulated-list-print

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Don't
try to preserve window-line.  (Bug#42747)
This commit is contained in:
Stefan Kangas 2021-04-09 18:25:08 +02:00
parent 22515134ae
commit cdd72c5d89

View file

@ -410,8 +410,7 @@ specified by `tabulated-list-sort-key'. It then erases the
buffer and inserts the entries with `tabulated-list-printer'. buffer and inserts the entries with `tabulated-list-printer'.
Optional argument REMEMBER-POS, if non-nil, means to move point Optional argument REMEMBER-POS, if non-nil, means to move point
to the entry with the same ID element as the current line and to the entry with the same ID element as the current line.
recenter window line accordingly.
Non-nil UPDATE argument means to use an alternative printing Non-nil UPDATE argument means to use an alternative printing
method which is faster if most entries haven't changed since the method which is faster if most entries haven't changed since the
@ -424,18 +423,10 @@ changing `tabulated-list-sort-key'."
(funcall tabulated-list-entries) (funcall tabulated-list-entries)
tabulated-list-entries)) tabulated-list-entries))
(sorter (tabulated-list--get-sorter)) (sorter (tabulated-list--get-sorter))
entry-id saved-pt saved-col window-line) entry-id saved-pt saved-col)
(and remember-pos (and remember-pos
(setq entry-id (tabulated-list-get-id)) (setq entry-id (tabulated-list-get-id))
(setq saved-col (current-column)) (setq saved-col (current-column)))
(when (eq (window-buffer) (current-buffer))
(setq window-line
(save-excursion
(save-restriction
(widen)
(narrow-to-region (window-start) (point))
(goto-char (point-min))
(vertical-motion (buffer-size)))))))
;; Sort the entries, if necessary. ;; Sort the entries, if necessary.
(when sorter (when sorter
(setq entries (sort entries sorter))) (setq entries (sort entries sorter)))
@ -490,9 +481,7 @@ changing `tabulated-list-sort-key'."
;; If REMEMBER-POS was specified, move to the "old" location. ;; If REMEMBER-POS was specified, move to the "old" location.
(if saved-pt (if saved-pt
(progn (goto-char saved-pt) (progn (goto-char saved-pt)
(move-to-column saved-col) (move-to-column saved-col))
(when window-line
(recenter window-line)))
(goto-char (point-min))))) (goto-char (point-min)))))
(defun tabulated-list-print-entry (id cols) (defun tabulated-list-print-entry (id cols)