(defvar recentering-test-run 0) (defun sometimes-not-recentering () (interactive) (setq recentering-test-run (1+ recentering-test-run)) (let ((buf (get-buffer-create "sample"))) (switch-to-buffer buf) (make-local-variable 'face-remapping-alist) (setq face-remapping-alist '((default (:family "DejaVu Sans Mono" :height 218)))) (erase-buffer) (save-excursion (dotimes (i 300) (insert (format "line %d\n" i)))) (let ((frame (make-frame `((parent-frame . ,(selected-frame)) (left . 30) (top . 1) (width . 40) (height . 3)))) (buf (get-buffer-create "buffer-in-frame"))) (with-selected-frame frame (switch-to-buffer buf) (erase-buffer) (insert "Hello!")) (redisplay) (delete-frame frame) (kill-buffer buf) (goto-char (point-max)) (insert "\n\n") (recenter 0) (redisplay) (unless (= (window-start) (point-max)) (message "window-start unexpectedly not at point-max (%d != %d) in run %d" (window-start) (point-max) recentering-test-run) (setq recentering-test-run 0) (error 'not-recentered t))))) (while t (sometimes-not-recentering))