From: Pascal Bourguignon <spam@mouse-potato.com>
Subject: Re: New balance-windows
Date: Sat, 06 Aug 2005 22:45:42 +0200 [thread overview]
Message-ID: <878xzevlop.fsf@thalassa.informatimago.com> (raw)
In-Reply-To: mailman.2773.1123347813.20277.help-gnu-emacs@gnu.org
Lennart Borgman <lennart.borgman.073@student.lu.se> writes:
>>
>>I think a correct algorithm should recover the split tree, then make
>>the balancing depending on the window counts in subtrees.
>>
>>
> Is the problem really that welldefined in Emacs? Do you know how the
> windows have been splitted? The difference above may perhaps be seen
> as emerging from that difficulty?
Indeed, but the data is available at least internally, so it should be
easy to patch emacs to publish window parameters like it's done for
frame parameters for example.
File: elisp, Node: Window Internals
Window Internals
----------------
Windows have the following accessible fields:
`frame'
The frame that this window is on.
`mini_p'
Non-`nil' if this window is a minibuffer window.
`parent'
Internally, Emacs arranges windows in a tree; each group of
siblings has a parent window whose area includes all the siblings.
This field points to a window's parent.
Parent windows do not display buffers, and play little role in
display except to shape their child windows. Emacs Lisp programs
usually have no access to the parent windows; they operate on the
windows at the leaves of the tree, which actually display buffers.
The following four fields also describe the window tree structure.
`hchild'
In a window subdivided horizontally by child windows, the leftmost
child. Otherwise, `nil'.
`vchild'
In a window subdivided vertically by child windows, the topmost
child. Otherwise, `nil'.
`next'
The next sibling of this window. It is `nil' in a window that is
the rightmost or bottommost of a group of siblings.
`prev'
The previous sibling of this window. It is `nil' in a window that
is the leftmost or topmost of a group of siblings.
--
__Pascal Bourguignon__ http://www.informatimago.com/
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d? s++:++ a+ C+++ UL++++ P--- L+++ E+++ W++ N+++ o-- K- w---
O- M++ V PS PE++ Y++ PGP t+ 5+ X++ R !tv b+++ DI++++ D++
G e+++ h+ r-- z?
------END GEEK CODE BLOCK------
next prev parent reply other threads:[~2005-08-06 20:45 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-03 0:47 Making the width of three windows equal Samuel
2005-08-03 1:01 ` Pascal Bourguignon
2005-08-03 2:13 ` Samuel
2005-08-03 3:11 ` Pascal Bourguignon
2005-08-06 11:59 ` New balance-windows (Was Re: Making the width of three windows equal) Ehud Karni
2005-08-06 13:27 ` New balance-windows Ehud Karni
[not found] ` <mailman.2758.1123335041.20277.help-gnu-emacs@gnu.org>
2005-08-06 16:42 ` Pascal Bourguignon
2005-08-07 17:15 ` New balance-windows (Was Re: Making the width of three windows equal) Richard M. Stallman
2005-08-08 9:27 ` Ehud Karni
2005-08-09 0:27 ` Richard M. Stallman
2005-08-10 0:05 ` New balance-windows Stefan Monnier
2005-08-10 1:48 ` Stefan Monnier
[not found] ` <mailman.3158.1123633927.20277.help-gnu-emacs@gnu.org>
2005-08-21 0:33 ` David Combs
[not found] ` <mailman.2979.1123493766.20277.help-gnu-emacs@gnu.org>
2005-08-08 17:55 ` Pascal Bourguignon
[not found] ` <mailman.2888.1123436059.20277.help-gnu-emacs@gnu.org>
2005-08-07 18:31 ` Pascal Bourguignon
[not found] ` <mailman.2754.1123329756.20277.help-gnu-emacs@gnu.org>
2005-08-06 16:39 ` Pascal Bourguignon
2005-08-06 16:58 ` Lennart Borgman
[not found] ` <mailman.2773.1123347813.20277.help-gnu-emacs@gnu.org>
2005-08-06 20:45 ` Pascal Bourguignon [this message]
2005-08-06 21:14 ` Lennart Borgman
[not found] ` <mailman.2796.1123363907.20277.help-gnu-emacs@gnu.org>
2005-08-07 18:23 ` Pascal Bourguignon
2005-08-07 18:59 ` Lennart Borgman
[not found] ` <mailman.2899.1123441421.20277.help-gnu-emacs@gnu.org>
2005-08-07 20:42 ` Pascal Bourguignon
2005-08-06 21:05 ` Ehud Karni
2005-08-07 2:17 ` Lennart Borgman
2005-08-08 9:36 ` Ehud Karni
2005-08-08 9:47 ` Lennart Borgman
[not found] ` <mailman.2988.1123495783.20277.help-gnu-emacs@gnu.org>
2005-08-08 10:18 ` David Kastrup
2005-08-08 11:18 ` Ehud Karni
2005-08-08 12:05 ` Lennart Borgman
[not found] ` <mailman.3002.1123500982.20277.help-gnu-emacs@gnu.org>
2005-08-08 18:11 ` Pascal Bourguignon
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878xzevlop.fsf@thalassa.informatimago.com \
--to=spam@mouse-potato.com \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).