[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Add function to rotate/transpose all windows
From: |
martin rudalics |
Subject: |
Re: Add function to rotate/transpose all windows |
Date: |
Wed, 25 Sep 2024 10:05:14 +0200 |
User-agent: |
Mozilla Thunderbird |
>> https://www.emacswiki.org/emacs/TransposeFrame
>> The code in this has the following limitations:
>> - Does not work in emacs 29.1
It works here when I remove the
(window-redisplay-end-trigger tree)
(set-window-redisplay-end-trigger window (pop config))
lines in such versions.
>> - No good way to transpose only specific parts of window tree
Then the FRAME arguments should probably become WINDOW-OR-FRAME and
accept arbitrary internal windows as value.
> Thanks.
>
> Martin, any comments or suggestions?
The problem of any such package is that Emacs never provided a suitable
balance between explicit management of objects like buffers or windows
(via 'kill-buffer' and 'delete-window') and the subsequent internal
handling of these objects.
In particular, the 'delete-window'/'split-window' paradigm may fail when
window objects have been stored in variables. Take this excerpt from
TransposeFrame
(if (eq (overlay-get ol 'window) orig-window)
(overlay-put ol 'window window))))
If this gets called within a 'save-window-excursion', then the 'window'
property of overlays may change from 'orig-window' to 'window'. When
'save-window-excursion' exits and restores 'orig-window' and deletes
'window', these overlays will now reference a dead window. This problem
could be partially fixed by using the 'clone-of' parameter of the
window. But that would fail when windows are rotated a second time.
Such problems could be fixed if we were able to reference windows by
their number (or an arbitrary name) and have Lisp references to a window
use that number instead of the object. It might, however, take
considerable time to have such a concept enter the minds of people used
to storing window identities as Lisp objects.
martin
- Add function to rotate/transpose all windows, pranshu sharma, 2024/09/24
- Re: Add function to rotate/transpose all windows, Eli Zaretskii, 2024/09/24
- Re: Add function to rotate/transpose all windows,
martin rudalics <=
- Re: Add function to rotate/transpose all windows, pranshu sharma, 2024/09/25
- Re: Add function to rotate/transpose all windows, martin rudalics, 2024/09/25
- Re: Add function to rotate/transpose all windows, pranshu sharma, 2024/09/25
- Re: Add function to rotate/transpose all windows, martin rudalics, 2024/09/25
- Re: Add function to rotate/transpose all windows, pranshu sharma, 2024/09/25
- Re: Add function to rotate/transpose all windows, martin rudalics, 2024/09/26
- Re: Add function to rotate/transpose all windows, Eli Zaretskii, 2024/09/26
- Re: Add function to rotate/transpose all windows, martin rudalics, 2024/09/27
- Re: Add function to rotate/transpose all windows, Eli Zaretskii, 2024/09/28
- Re: Add function to rotate/transpose all windows, martin rudalics, 2024/09/28