diff --git a/eat.el b/eat.el index b44619c..fc7c68b 100644 --- a/eat.el +++ b/eat.el @@ -6483,10 +6483,14 @@ symbol `buffer', in which case the point of current buffer is set." (dolist (window windows) (if (eq window 'buffer) (goto-char (eat-term-display-cursor eat-terminal)) - (set-window-start - window (eat-term-display-beginning eat-terminal)) - (set-window-point - window (eat-term-display-cursor eat-terminal))))) + (with-selected-window window + (set-window-point nil (eat-term-display-cursor eat-terminal)) + (recenter + (- (how-many "\n" (eat-term-display-beginning eat-terminal) + (eat-term-display-cursor eat-terminal)) + (cdr (eat-term-size eat-terminal)) + (max 0 (- (floor (window-screen-lines)) + (cdr (eat-term-size eat-terminal)))))))))) (defun eat--setup-glyphless-chars () "Setup the display of glyphless characters." @@ -7498,24 +7502,11 @@ symbol `buffer', in which case the point of current buffer is set." (dolist (window windows) (if (eq window 'buffer) (goto-char (eat-term-display-cursor eat-terminal)) - (set-window-start - window - (if (or (eat-term-in-alternative-display-p eat-terminal) - eat--eshell-char-mode) - (eat-term-display-beginning eat-terminal) - (save-restriction - (narrow-to-region (eat-term-beginning eat-terminal) - (eat-term-end eat-terminal)) - (let ((start-line (- (floor (window-screen-lines)) - (line-number-at-pos (point-max))))) - (goto-char (point-min)) - (widen) - (if (<= start-line 0) - (eat-term-display-beginning eat-terminal) - (vertical-motion (- start-line)) - (point)))))) - (set-window-point - window (eat-term-display-cursor eat-terminal))))) + (with-selected-window window + (set-window-point nil (eat-term-display-cursor eat-terminal)) + (recenter + (- (1+ (how-many "\n" (eat-term-display-cursor eat-terminal) + (eat-term-end eat-terminal))))))))) (defun eat--eshell-update-cwd () "Update the current working directory."