[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#35860: Delayed window positioning after buffer display
From: |
Juri Linkov |
Subject: |
bug#35860: Delayed window positioning after buffer display |
Date: |
Thu, 23 May 2019 23:56:17 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) |
>> There are commands that set point while the buffer is not displayed,
>> and after displaying the buffer point remains at an old position,
>> not where it was moved while the buffer was undisplayed.
>
> That's a feature, isn't it? See switch-to-buffer-preserve-window-point.
IIUC, it tries to preserve the previous position of window-point,
but the required feature should set point when the buffer
is displayed for the first time.
>> One solution is to generalize the variable 'help-window-point-marker'
>> currently described as:
>>
>> ;; `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.