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

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

bug#32790: 27.0.50; point jumps unexpectedly after delete-window


From: martin rudalics
Subject: bug#32790: 27.0.50; point jumps unexpectedly after delete-window
Date: Fri, 16 Nov 2018 09:53:57 +0100

> Whereas I meant mostly switch-to-buffer as a command bound to 'C-x b',
> non-interactive calls of 'switch-to-buffer' have the same problem, and
> maybe some of them could be replaced with 'pop-to-buffer-same-window'
> without side effects.  One example is 'C-h C-n' (view-emacs-news) that
> uses switch-to-buffer, and can't be forced into another window.
>
> I solved this general problem for myself with such advice:
>
> (advice-add 'switch-to-buffer :around
>              (lambda (orig-fun &rest args)
>                (let ((buffer (apply orig-fun args))
>                      (window (selected-window)))
>                  (switch-to-prev-buffer window)
>                  (pop-to-buffer-same-window buffer))))
>
> Then 'S-M-right C-h C-n' shows it in the right window.

I don't grok it yet.  What's the 'switch-to-prev-buffer' call for?

> Do you think it's possible to add a corresponding customizable option
> that would provide the same behavior?

I would have to understand the "behavior" first.  One approach would
be to move the user-error and 'switch-to-buffer-preserve-window-point'
handling into the interactive specification handling and for the rest
do what 'pop-to-buffer-same-window' does.

>> Windows have been often made dedicated so they get auto-deleted as
>> soon as their buffer gets buried or killed.  This use-case should now
>> be handled by the 'quit-restore' parameter.  I have no idea whether
>> windows are made dedicated for any other reason.  Do you?
>
> Another reason would be to force pop-up from switch-buffer, but
> it's not the right thing to do.

Something like "I never want to show another buffer in this window,
please remind me if I accidentally try to do that".

martin





reply via email to

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