From: martin rudalics <rudalics@gmx.at>
To: Juri Linkov <juri@linkov.net>
Cc: Michael Heerdegen <michael_heerdegen@web.de>, 32825@debbugs.gnu.org
Subject: bug#32825: 27.0.50; Deterministic window management
Date: Fri, 02 Nov 2018 09:43:36 +0100 [thread overview]
Message-ID: <5BDC0E38.5020901@gmx.at> (raw)
In-Reply-To: <87h8h0juwn.fsf@mail.linkov.net>
>> 'window-min-height' is an option which causes functions to
>> check the height of all windows wrt a potential change. If, after the
>> change, the height of one window would drop below that value, the
>> change is not made. One can make an exeption for a specific window,
>> for example the one that should be resized or newly made, but not for
>> other windows that are probably not related to the change.
>
> I meant the same, but with one change: check the height of all windows
> with the default value of 'window-min-height' (i.e. 4), but check the
> height of the new created window with the value 'window-min-height'
> (e.g. 10) specified in an alist that should override the default value
> only for the window created by display-buffer-below-selected.
So you mean that if Emacs can't fulfill a 'window-height' contract for
a new window below the selected one, it shouldn't make a new one in
the first place? Then with an an alist entry called 'min-height' we
could rewrite 'display-buffer-below-selected' as follows:
(defun display-buffer-below-selected (buffer alist)
"Try displaying BUFFER in a window below the selected window.
If there is a window below the selected one and that window
already displays BUFFER, use that window. Otherwise, try to
create a new window below the selected one and show BUFFER there.
If that attempt fails as well and there is a non-dedicated window
below the selected one, use that window."
(let ((min-height (cdr (assq 'min-height alist)))
window)
(or (and (setq window (window-in-direction 'below))
(eq buffer (window-buffer window))
(window--display-buffer buffer window 'reuse alist))
(and (not (frame-parameter nil 'unsplittable))
(or (not (numberp min-height))
(window-sizable-p nil (- min-height)))
(let ((split-height-threshold 0)
split-width-threshold)
(setq window (window--try-to-split-window
(selected-window) alist)))
(window--display-buffer
buffer window 'window alist display-buffer-mark-dedicated))
(and (setq window (window-in-direction 'below))
(not (window-dedicated-p window))
(window--display-buffer
buffer window 'reuse alist display-buffer-mark-dedicated)))))
But would we (re-)use a window if it is not as large as 'min-height'?
Would we try to enlarge such a window? As far as we can?
BTW: Calling 'window--try-to-split-window' above is butt-ugly. We
should simply call 'split-window' instead. I have no idea what came
to my mind when I wrote that.
martin
next prev parent reply other threads:[~2018-11-02 8:43 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-24 18:59 bug#32825: 27.0.50; Deterministic window management Juri Linkov
2018-09-25 7:28 ` martin rudalics
2018-09-25 12:34 ` Michael Heerdegen
2018-09-25 17:56 ` martin rudalics
2018-09-25 18:29 ` Michael Heerdegen
2018-09-26 8:50 ` martin rudalics
2018-09-26 23:23 ` Juri Linkov
2018-09-27 18:45 ` martin rudalics
2018-09-26 23:19 ` Juri Linkov
2018-09-27 11:31 ` Michael Heerdegen
2018-10-25 19:33 ` Juri Linkov
2018-10-25 20:00 ` Michael Heerdegen
2018-10-27 20:14 ` Juri Linkov
2018-10-27 20:28 ` Michael Heerdegen
2018-10-27 20:59 ` Juri Linkov
2018-10-27 21:21 ` Michael Heerdegen
2018-10-27 21:34 ` Juri Linkov
2018-10-27 22:02 ` Michael Heerdegen
2018-10-28 9:06 ` martin rudalics
2018-10-28 19:02 ` Juri Linkov
2018-10-29 8:43 ` martin rudalics
2018-10-29 22:47 ` Juri Linkov
2018-10-30 21:18 ` Juri Linkov
2018-10-31 8:10 ` martin rudalics
2018-10-31 21:10 ` Juri Linkov
2018-11-01 9:01 ` martin rudalics
2018-11-01 22:27 ` Juri Linkov
2018-11-02 8:43 ` martin rudalics [this message]
2018-11-04 0:27 ` Juri Linkov
2018-11-04 9:07 ` martin rudalics
2018-11-04 21:33 ` Juri Linkov
2018-11-05 9:34 ` martin rudalics
2018-11-05 21:49 ` Juri Linkov
2018-11-06 8:46 ` martin rudalics
2018-11-06 22:13 ` Juri Linkov
2018-11-07 9:23 ` martin rudalics
2018-11-07 21:50 ` Juri Linkov
2018-11-08 8:53 ` martin rudalics
2018-11-08 21:58 ` Juri Linkov
2018-11-09 9:13 ` martin rudalics
2018-11-09 10:17 ` Michael Heerdegen
2018-11-09 12:51 ` martin rudalics
2018-11-10 21:53 ` Juri Linkov
2018-11-11 8:53 ` martin rudalics
2018-11-11 20:13 ` Juri Linkov
2018-11-12 8:45 ` martin rudalics
2018-11-12 23:39 ` Juri Linkov
2018-11-13 0:29 ` Juri Linkov
2018-11-13 9:12 ` martin rudalics
2018-11-13 23:29 ` Juri Linkov
2018-11-14 8:33 ` martin rudalics
2018-11-14 23:52 ` Juri Linkov
2018-11-15 9:12 ` martin rudalics
2018-11-15 21:43 ` Juri Linkov
2018-11-16 8:53 ` martin rudalics
2018-11-16 12:57 ` martin rudalics
2018-11-17 22:23 ` Juri Linkov
2018-11-18 9:24 ` martin rudalics
2018-11-18 23:01 ` Juri Linkov
2018-11-19 9:43 ` martin rudalics
[not found] ` <87h8gcy95d.fsf@mail.linkov.net>
2018-11-20 9:32 ` martin rudalics
2018-11-21 0:16 ` Juri Linkov
2018-11-21 8:19 ` martin rudalics
2018-11-21 23:54 ` Juri Linkov
2018-11-22 7:41 ` martin rudalics
2018-11-13 9:09 ` martin rudalics
2018-11-04 9:36 ` martin rudalics
2018-11-04 21:35 ` Juri Linkov
2018-11-05 9:34 ` martin rudalics
2018-11-05 21:56 ` Juri Linkov
2018-11-06 8:46 ` martin rudalics
2018-11-06 22:08 ` Juri Linkov
2018-11-07 9:23 ` martin rudalics
2018-11-07 21:55 ` Juri Linkov
2018-11-08 8:53 ` martin rudalics
2018-11-08 22:09 ` Juri Linkov
2018-11-09 9:13 ` martin rudalics
2018-11-10 21:39 ` Juri Linkov
2018-11-11 8:52 ` martin rudalics
2018-11-11 20:09 ` Juri Linkov
2018-11-12 8:36 ` martin rudalics
2018-11-12 23:40 ` Juri Linkov
2018-11-13 9:09 ` martin rudalics
2018-11-13 23:44 ` Juri Linkov
2018-11-14 8:33 ` martin rudalics
2018-12-03 23:07 ` Juri Linkov
2018-12-04 8:32 ` martin rudalics
2018-12-04 22:24 ` Juri Linkov
2018-12-05 9:15 ` martin rudalics
2018-12-05 18:55 ` martin rudalics
2018-12-06 0:04 ` Juri Linkov
2018-12-06 9:09 ` martin rudalics
2018-12-06 23:31 ` Juri Linkov
2018-12-08 9:41 ` martin rudalics
2018-12-08 9:41 ` martin rudalics
2018-12-08 23:40 ` Juri Linkov
2018-12-09 8:25 ` martin rudalics
2018-12-10 0:17 ` Juri Linkov
2018-12-10 1:01 ` Michael Heerdegen
2018-12-11 0:07 ` Juri Linkov
2018-12-11 1:08 ` Michael Heerdegen
2018-12-11 8:34 ` martin rudalics
2018-12-20 23:57 ` Juri Linkov
2018-12-21 9:15 ` martin rudalics
2018-12-22 23:45 ` Juri Linkov
2018-12-23 9:41 ` martin rudalics
2018-12-23 23:32 ` Juri Linkov
2018-12-24 8:14 ` martin rudalics
2018-12-25 21:16 ` Juri Linkov
2018-12-26 9:41 ` martin rudalics
2018-12-27 0:10 ` Juri Linkov
2018-12-27 9:37 ` martin rudalics
2018-09-27 18:44 ` martin rudalics
2018-09-27 22:47 ` Juri Linkov
2018-09-30 8:00 ` martin rudalics
2018-09-30 11:40 ` Michael Heerdegen
2018-09-30 12:22 ` martin rudalics
2018-09-30 12:32 ` Noam Postavsky
2018-09-30 12:43 ` martin rudalics
2018-09-30 13:04 ` Noam Postavsky
2018-09-30 13:38 ` Michael Heerdegen
2018-09-30 21:26 ` Noam Postavsky
2018-09-30 23:33 ` Michael Heerdegen
2018-10-01 8:36 ` martin rudalics
2018-10-01 13:18 ` Michael Heerdegen
2018-10-01 15:07 ` martin rudalics
2018-10-01 18:10 ` Michael Heerdegen
2018-10-02 7:38 ` martin rudalics
2018-10-02 13:24 ` Michael Heerdegen
2018-10-01 13:05 ` Michael Heerdegen
2018-10-01 13:14 ` Noam Postavsky
2018-10-01 15:06 ` martin rudalics
2022-04-30 14:52 ` Lars Ingebrigtsen
2022-04-30 14:54 ` Lars Ingebrigtsen
2022-05-01 17:00 ` Juri Linkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5BDC0E38.5020901@gmx.at \
--to=rudalics@gmx.at \
--cc=32825@debbugs.gnu.org \
--cc=juri@linkov.net \
--cc=michael_heerdegen@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.