Subject: bug#22009: PATCH: Use `window-total-width' in `window-splittable-p'

From: Joost Kremers <[email-masked]>
Date: Fri, 27 Nov 2015 02:16:22 +0100

[My apologies if this message messes up threading. I accidentally
deleted the thread from my mail archive.]

Eli Zaretskii wrote:
> Maybe we should step back and recall what problem are we trying to
> solve with the proposed patch, then.

The problem I'd like to solve (and the reason I submitted the patch) is
that if a window has wide margins that are used to center the text,
`window-splittable-p' will say that the window cannot be split
horizontally, even though it can, because the margins are disposable.

But actually, that's not the real problem. The real problem is that
`window-splittable-p' simply has too little information to make an
informed decision.

The point is that the margins may be used for two different kinds of
purposes:

(1) The margins can be used to display useful information, in which case
they should be retained when the window is split.

(2) The margins can be used to reduce the width of the text area. In
this case, the margins are disposable.

Right now, `window-splittable-p' does the right thing for case (1), but
not for case (2). With the patch I submitted, it would do the right
thing for case (2), but no longer for case (1). So I agree it's actually
a bad patch.

The only way to deal with both (1) and (2) correctly, and also with the
case where different modes use the margins for (1) and (2) *at the same
time*, would be to store information about the modes that use the
margins and for which purpose. Then `window-splittable-p' could tell
which part of the margins must be retained and which part is disposable.

We were discussing just such a proposal on emacs-devel, so perhaps it
would be best to continue the discussion there?

-- 
Joost Kremers
Life has its moments