GNU bug report logs -
#69093
window-state-put doesn't update current buffer
Previous Next
Reported by: Juri Linkov <juri <at> linkov.net>
Date: Tue, 13 Feb 2024 07:46:02 UTC
Severity: normal
Fixed in version 30.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>> 'window-state-put' fails to select the previously selected
>> window's buffer with the property (selected . t).
>
> It should have selected it here
>
> ;; Select window if it's the selected one.
> (when (cdr (assq 'selected state))
> (select-window window))
>
> Please first check whether this 'select-window' call is executed at all
> in your scenario. If it is, please find out which window apparently
> gets selected instead afterwards and try to find out why.
The right window is selected, and its buffer becomes current.
> If there's no clue, you would have to find out who undoes that
> selection first by putting a breakpoint into Fselect_window and, if
> that fails, by putting a breakpoint into select_window (which can be
> a pain).
The problem is that afterwards the same function undoes the setting of
current buffer. In window--state-put-2, select-window is inside
with-current-buffer that undoes the current buffer selection:
(with-current-buffer buffer
...
;; Select window if it's the selected one.
(when (cdr (assq 'selected state))
(select-window window))
Also in window-state-put, with-temp-buffer undoes the current buffer:
(with-temp-buffer
(set-window-buffer window (current-buffer))
(window--state-put-1 state window nil totals pixelwise)
(window--state-put-2 ignore pixelwise))
This bug report was last modified 1 year and 78 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.