Subject: bug#35860: Delayed window positioning after buffer display

From: Juri Linkov <[email-masked]>
Date: Fri, 24 May 2019 21:34:18 +0300

>> >>   ;; `help-window-point-marker' is a marker you can move to a valid
>> >>   ;; position of the buffer shown in the help window in order to override
>> >>   ;; the standard positioning mechanism (`point-min') chosen by
>> >>   ;; `with-output-to-temp-buffer' and `with-temp-buffer-window'.
>> >>   ;; `with-help-window' has this point nowhere before exiting.  Currently
>> >>   ;; used by `view-lossage' to assert that the last keystrokes are always
>> >>   ;; visible.
>> >>   (defvar help-window-point-marker (make-marker)
>> >>     "Marker to override default `window-point' in help windows.")
>> >
>> > Why not bind switch-to-buffer-preserve-window-point to nil instead?
>>
>> I don't know.  I tried to replace
>>
>>   (set-marker help-window-point-marker (point))
>>
>> with
>>
>>   (goto-char (point-max))
>>   (setq-local switch-to-buffer-preserve-window-point nil)
>>
>> and it doesn't set point to the end of the Help buffer
>> when it's displayed for the first time.
>
> Can you show a recipe starting from "emacs -Q" that exhibits this
> behavior.  It sounds like I'm confused about what exactly happens.

0. emacs -Q
1. C-h l

Then point in the *Help* buffer should be at the bottom,
but when setting switch-to-buffer-preserve-window-point to nil
instead of using set-marker, point still is at the top of the buffer.