Fix point position after revert-buffer in tabulated-list mode
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Don't use count-screen-lines, as it is unreliable when lines are truncated and the region ends before a newline (the root cause is in vertical-motion, but is very hard to fix there). Instead, use vertical-motion directly, as the problems with counting/not counting the newline that ends the region are not relevant to what we need in this function, which is simply the number of the current window line. (Bug#37941)
This commit is contained in:
parent
1b687e171e
commit
fc0f98a8a8
1 changed files with 6 additions and 1 deletions
|
@ -424,7 +424,12 @@ changing `tabulated-list-sort-key'."
|
|||
(setq saved-col (current-column))
|
||||
(when (eq (window-buffer) (current-buffer))
|
||||
(setq window-line
|
||||
(count-screen-lines (window-start) (point)))))
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(widen)
|
||||
(narrow-to-region (window-start) (point))
|
||||
(goto-char (point-min))
|
||||
(vertical-motion (buffer-size)))))))
|
||||
;; Sort the entries, if necessary.
|
||||
(when sorter
|
||||
(setq entries (sort entries sorter)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue