Invoke org-edit-src and an edit buffer is displayed for the src block at
point. If that popup is killed incorrectly, it leaves the original org
buffer (specifically, the src block you were editing) in a half-broken
state; forever waiting for you to finish editing that block.
This can happen when the edit window is a popup window and you switch
workspaces (which temporarily deletes popup windows), so clean up those
popups properly before switching.
In the presence of multiple, horizontal splits, the org-todo popup
consumes ~50% of the vertical real-estate of its northern neighbor when
created. This is due to an edge case with some failsafe code somewhere
down org-fit-window-to-buffer's stack. This fix ensures the popup is
always a sane size.
And by enabling +popup-buffer-mode in it, we ensure it will be treated
as a popup (e.g. solaire-mode will be active in it, no modeline, etc).
- Remove remaining `EMACS27+` checks, since the whole codebase is
assumed to run at version 27 or above now
- Remove `EMACS27+` definition since it's no longer needed
Function (buffer-file-name) always returns nil with indirect buffer as
an argument. Extracting base buffer and checking if base buffer visiting
file fixes data loss in indirect buffers showed in popups.
E-mail thread in the org-mode mailing list:
https://lists.gnu.org/archive/html/emacs-orgmode/2020-12/msg00085.html
- If there's only one other window, delete-window would be called,
instead of delete-other-windows
- when there is only one window other than the popup, this other window
is the main window in this frame, delete it would raise an error:
`delete-window: Attempt to delete main window of frame <frame name>`
- before this change: when reusing a window, select option would get ignored
- after this change: when reusing a window, select option would be used
just as a new popup
process, timer, abbreviations, output, occur buffers are all better
displayed in a maximized fashion. Otherwise, they aren't really useful.
Signed-off-by: Rudi Grinberg <me@rgrinberg.com>