bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#69093: window-state-put doesn't update current buffer


From: martin rudalics
Subject: bug#69093: window-state-put doesn't update current buffer
Date: Fri, 16 Feb 2024 10:39:36 +0100
User-agent: Mozilla Thunderbird

> Thanks for explanations.  I see this line in 'set-window-configuration':
>
>        Fset_buffer (new_current_buffer);
>
> Do you think this is the right fix?

No.  I think the right fix would be to remove the above line from
'set-window-configuration'.  We can't do that because some applications
might depend on the current behavior.  But I am quite confident that
nobody fully understands 'set-window-configuration' anyway and can
predict what it does when selected frame, current buffer and the buffer
and frame stored in the CONFIGURATION argument mismatch.

Or could you tell beforehand which buffer will be current after

(let ((configuration (current-window-configuration)))
  (pop-to-buffer "*Messages*" '((display-buffer-pop-up-frame)))
  (set-window-configuration configuration)
  (current-buffer))

I think that the behavior of

(let ((frame (selected-frame))
      (state (window-state-get)))
  (pop-to-buffer "*Messages*" '((display-buffer-pop-up-frame)))
  (window-state-put state (frame-root-window frame))
  (current-buffer))

is much more consistent in this regard.

I'd say that any code run in a state where the buffer of the selected
window and the current buffer are not the same - regardless of whether
this happens when a state/configuration is saved or restored - should
simply report an error.  But that ship has sailed long ago.

martin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]