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

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

bug#48493: 28.0.50; quit-window doesn't work


From: pillule
Subject: bug#48493: 28.0.50; quit-window doesn't work
Date: Tue, 25 May 2021 13:01:05 +0000


martin rudalics <rudalics@gmx.at> writes:

Then I suppose that the dedicated window parameter must be restored after a kill-buffer accordingly; this solve the previous test but
ask for more modifications.

Who makes any of these buffers dedicared?

All windows created by `display-buffer-in-side-window' have the state
(dedicated . side)

Tiers libraries such as the module popup from Doom emacs come at this
subject with the rule :

--quitting/killing a buffer in a side window,
always delete its window--
(it is done with a local value of kill-buffer-hook installed from
their own `display-buffer-alist')

instead of the rule :

--quitting/killing a buffer in any window,
1 switch to its previous buffer
2 delete the window if no available
3 switch to another buffer if the window is not deletable--

Which is what I think you are asking and IMHO ask to deal with the
dedicated window state to not cripple side-windows.

I can modify to `switch-to-prev-buffer' (and its sibling
`switch-to-prev-buffer') to return nil instead of the current buffer; however the result is the same : the window rest in place with an
undesired buffer inside.
Note that we may want that anyway if it can solve the cases where
`quit-restore-window' display the same buffer again.

I am still looking to find what may be messing the prev-buffers list.

Try to experiment with an idiom like

      (if prev-buffer
;; If a previous buffer exists, try to switch to it. If that ;; fails for whatever reason, try to delete the window.
          (unless (switch-to-prev-buffer window bury-or-kill)
            (window--delete window nil (eq bury-or-kill 'kill)))
;; If no previous buffer exists, try to delete the window. If ;; that fails for whatever reason, try to switch to some other
        ;; buffer.
(unless (window--delete window nil (eq bury-or-kill 'kill))
          (switch-to-prev-buffer window bury-or-kill)))

Thanks for the snippet, I think I am confused by this window dedication, please help me to clarify my mind before I try to implement a solution
with or without the dedicated window state.

--





reply via email to

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