From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Chong Yidong Newsgroups: gmane.emacs.devel Subject: Re: Windows' "split status" Date: Tue, 15 Nov 2011 13:20:03 +0800 Message-ID: <87hb26gdx8.fsf@gnu.org> References: <87vcqqoekt.fsf@gnu.org> <4EBD6B63.4050607@gmx.at> <87vcqq6utg.fsf@gnu.org> <4EBE4414.10009@gmx.at> <87d3cwr9hc.fsf@gnu.org> <4EBFA0AF.7000608@gmx.at> <87obwgatpy.fsf@gnu.org> <4EBFFBA5.1000309@gmx.at> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1321334424 16434 80.91.229.12 (15 Nov 2011 05:20:24 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 15 Nov 2011 05:20:24 +0000 (UTC) Cc: emacs-devel@gnu.org To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Nov 15 06:20:17 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RQBRR-0007KK-MA for ged-emacs-devel@m.gmane.org; Tue, 15 Nov 2011 06:20:17 +0100 Original-Received: from localhost ([::1]:46175 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQBRQ-0000sS-Sx for ged-emacs-devel@m.gmane.org; Tue, 15 Nov 2011 00:20:16 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:36314) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQBRO-0000sA-4A for emacs-devel@gnu.org; Tue, 15 Nov 2011 00:20:14 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RQBRM-00071Y-U0 for emacs-devel@gnu.org; Tue, 15 Nov 2011 00:20:14 -0500 Original-Received: from fencepost.gnu.org ([140.186.70.10]:53055) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQBRM-00071U-RD for emacs-devel@gnu.org; Tue, 15 Nov 2011 00:20:12 -0500 Original-Received: from [155.69.16.255] (port=33516 helo=furball) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1RQBRL-0000wc-PY; Tue, 15 Nov 2011 00:20:12 -0500 In-Reply-To: <4EBFFBA5.1000309@gmx.at> (martin rudalics's message of "Sun, 13 Nov 2011 18:17:25 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.10 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:146035 Archived-At: martin rudalics writes: > The problem with window parameters is that I currently do save them > together with a window configuration and restore them when restoring > the configuration. Earlier, Stefan didn't want to do that and I'd > like to revert the current behavior at any time when problems arise. > This would mean, however, that when you have a nested window, dissolve > it within a window excursion, and restore the initial configuration, > the nesting would get lost. So I'd rather be on the safe side in this > regard. Not a problem; if we do revert the behavior, we can bring back the special slot and the old code. I'd rather we try to DTRT now. > OTOH, it's not entirely trivial to handle `window-max-children' during > recombination. Suppose you have a configuration like > > ------------------- > | | | W3 | W4 | > | W1 | W2 |---------| > | | | W5 | > ------------------- > > the user has set `window-max-children' to 3 and deletes W5. How should > recombine_windows proceed? If I understand your example, this corresponds to the window tree root (internal) | ---------- | | | W1 W2 W6 (internal) | --------- | | W5 --W7 (internal) | | W3 W4 On deleting W5 with `window-max-children' of 3, the tree becomes root (internal) | ---------- | | | W1 W2 W7 (internal) | ------ | | W3 W4 which is reasonable. As for the case where `window-max-children' has been set to 2 (e.g. by changing the option midway through an Emacs session), that can be handled by treating it as a soft limit: Emacs will not *add* children to an internal window past the number specified by `window-max-children' (or the window parameter), but if an internal window winds up with excess children for any reason, Emacs does not try to prune it or rearrange the window tree. Does that make sense?