* Subwindow terminology
@ 2011-11-05 4:36 Chong Yidong
2011-11-05 11:23 ` martin rudalics
2011-11-07 10:16 ` martin rudalics
0 siblings, 2 replies; 22+ messages in thread
From: Chong Yidong @ 2011-11-05 4:36 UTC (permalink / raw)
To: emacs-devel
I don't understand the term "subwindow" in the new window code. What's
the difference between a subwindow and a child window? If there is
none, we ought to refer to "child window" throughout, instead of adding
another equivalent piece of jargon.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 4:36 Subwindow terminology Chong Yidong
@ 2011-11-05 11:23 ` martin rudalics
2011-11-05 12:50 ` Stephen J. Turnbull
2011-11-07 10:16 ` martin rudalics
1 sibling, 1 reply; 22+ messages in thread
From: martin rudalics @ 2011-11-05 11:23 UTC (permalink / raw)
To: Chong Yidong; +Cc: emacs-devel
> I don't understand the term "subwindow" in the new window code. What's
> the difference between a subwindow and a child window?
The set of child windows of a window W is the set of windows that have W
as their parent window. The set of subwindows of W is recursively
defined as the set of windows whose parent is either W or a subwindow of
W. Hence the child window of a child window of W is a subwindow of W
but not a child window of W. The set of child windows of W is always a
subset of the subwindows of W.
> If there is
> none, we ought to refer to "child window" throughout, instead of adding
> another equivalent piece of jargon.
It would mean substantial changes in code and documentation. If people
think it's worth the effort I can try to do that.
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 11:23 ` martin rudalics
@ 2011-11-05 12:50 ` Stephen J. Turnbull
2011-11-05 13:28 ` martin rudalics
0 siblings, 1 reply; 22+ messages in thread
From: Stephen J. Turnbull @ 2011-11-05 12:50 UTC (permalink / raw)
To: martin rudalics; +Cc: Chong Yidong, emacs-devel
martin rudalics writes:
> > I don't understand the term "subwindow" in the new window code. What's
> > the difference between a subwindow and a child window?
>
> The set of child windows of a window W is the set of windows that have W
> as their parent window. The set of subwindows of W is recursively
> defined as the set of windows whose parent is either W or a subwindow of
> W.
This is usually referred to as "descendant". Having a completely
unrelated term suggests that maybe these are GUI subwindows or
something other than "child or child of child etc".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 12:50 ` Stephen J. Turnbull
@ 2011-11-05 13:28 ` martin rudalics
2011-11-05 13:36 ` Stephen J. Turnbull
2011-11-05 20:31 ` Dave Abrahams
0 siblings, 2 replies; 22+ messages in thread
From: martin rudalics @ 2011-11-05 13:28 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: Chong Yidong, emacs-devel
> > The set of child windows of a window W is the set of windows that have W
> > as their parent window. The set of subwindows of W is recursively
> > defined as the set of windows whose parent is either W or a subwindow of
> > W.
>
> This is usually referred to as "descendant". Having a completely
> unrelated term suggests that maybe these are GUI subwindows or
> something other than "child or child of child etc".
Using the term "descendant" with Emacs windows is misleading because
often a parent window is genealogically a descendant of one of its
subwindows. In any case "subwindow" is a pretty common term and was
already used in earlier versions of Emcas, for example, in the routine
delete_all_subwindows and in the description of `window-tree'.
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 13:28 ` martin rudalics
@ 2011-11-05 13:36 ` Stephen J. Turnbull
2011-11-05 15:05 ` martin rudalics
2011-11-05 20:31 ` Dave Abrahams
1 sibling, 1 reply; 22+ messages in thread
From: Stephen J. Turnbull @ 2011-11-05 13:36 UTC (permalink / raw)
To: martin rudalics; +Cc: Chong Yidong, emacs-devel
martin rudalics writes:
> Using the term "descendant" with Emacs windows is misleading because
> often a parent window is genealogically a descendant of one of its
> subwindows.
I don't see how a user would ever figure that out.
> In any case "subwindow" is a pretty common term
Yes, and that's a bug-not-a-feature here, given that other usages are
applicable to Emacs internals at the very least (and in XEmacs, we
actually have GUI subwindows visible from Lisp as such, although you
rarely see code that uses these features).
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 13:36 ` Stephen J. Turnbull
@ 2011-11-05 15:05 ` martin rudalics
2011-11-05 16:54 ` Stephen J. Turnbull
0 siblings, 1 reply; 22+ messages in thread
From: martin rudalics @ 2011-11-05 15:05 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: Chong Yidong, emacs-devel
> I don't see how a user would ever figure that out.
How not? When you split a live window the old window doesn't become a
parent window since otherwise any existing references to that window
would get lost. You can ignore this fact, then Emacs works for you out
of the box and you won't need a doc-string or manual anyway.
> > In any case "subwindow" is a pretty common term
>
> Yes, and that's a bug-not-a-feature here, given that other usages are
> applicable to Emacs internals at the very least (and in XEmacs, we
> actually have GUI subwindows visible from Lisp as such, although you
> rarely see code that uses these features).
IIUC delete_all_subwindows is in XEmacs just as in Emacs and in addition
XEmacs has (or at least had)
(defun window-reduce-to-one (window)
"Make sure only one subwindow of WINDOW is left."
...
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 15:05 ` martin rudalics
@ 2011-11-05 16:54 ` Stephen J. Turnbull
0 siblings, 0 replies; 22+ messages in thread
From: Stephen J. Turnbull @ 2011-11-05 16:54 UTC (permalink / raw)
To: martin rudalics; +Cc: Chong Yidong, emacs-devel
martin rudalics writes:
> IIUC delete_all_subwindows is in XEmacs just as in Emacs and in addition
> XEmacs has (or at least had)
XEmacs has lots of bugs, some of which we inherit from Emacs. ;-)
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 13:28 ` martin rudalics
2011-11-05 13:36 ` Stephen J. Turnbull
@ 2011-11-05 20:31 ` Dave Abrahams
2011-11-06 8:50 ` martin rudalics
1 sibling, 1 reply; 22+ messages in thread
From: Dave Abrahams @ 2011-11-05 20:31 UTC (permalink / raw)
To: emacs-devel
on Sat Nov 05 2011, martin rudalics <rudalics-AT-gmx.at> wrote:
>> > The set of child windows of a window W is the set of windows that have W
>
>> > as their parent window. The set of subwindows of W is recursively
>> > defined as the set of windows whose parent is either W or a subwindow of
>> > W.
>>
>> This is usually referred to as "descendant". Having a completely
>> unrelated term suggests that maybe these are GUI subwindows or
>> something other than "child or child of child etc".
>
> Using the term "descendant" with Emacs windows is misleading because
> often a parent window is genealogically a descendant of one of its
> subwindows.
So sometimes a child window is not necessarily a descendant window? If
so, that's just horrible. If you don't want to change the "subwindow"
terminology, maybe "child window" should become "immediate subwindow" or
"direct subwindow."
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 20:31 ` Dave Abrahams
@ 2011-11-06 8:50 ` martin rudalics
2011-11-06 9:16 ` Dave Abrahams
2011-11-06 9:26 ` Stephen J. Turnbull
0 siblings, 2 replies; 22+ messages in thread
From: martin rudalics @ 2011-11-06 8:50 UTC (permalink / raw)
To: Dave Abrahams; +Cc: emacs-devel
> So sometimes a child window is not necessarily a descendant window? If
> so, that's just horrible.
Some child windows have been adopted by their parents, others not.
What's so horrible about that? Alternatively, we would have to demand
that a fresh frame always has a parent window with one child window
which doesn't strike me as very useful.
> If you don't want to change the "subwindow"
> terminology, maybe "child window" should become "immediate subwindow" or
> "direct subwindow."
I already regret that I started to describe the window tree at all. Do
you think that I did not consider alternative ways of doing that?
Window trees are described in terms of four well known concepts - root
window, parent window, child window and subwindow. All these relations
have been in the Emacs sources for years (think of `frame-root-window',
the parent and vchild/hchild fields in the window structure, or the
routine delete_all_subwindows) and I don't have much interest changing
anything here. I didn't use the terms "ancestor" and "descendant"
because these would introduce a genealogical connotation that doesn't
exist.
The terms "sibling" and "combination" are occasionally useful for
describing the behavior of splitting and deleting windows. In any case,
these terms have been widely used in Emacs 23 so I don't see a reason to
change that.
In addition I used the term "internal" for windows that are not visible
on the screen and "live" or "leaf" for visible windows. I don't like
the term "live" for the latter but this has been in Emacs ever since, so
there's little hope to change this. We could abandon the term "internal
window" in favor of "parent window" as Stefan suggested but this would
lead to a connotation like "parent windows are not live" which I don't
like (at least not as an explicit dichotomy).
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 8:50 ` martin rudalics
@ 2011-11-06 9:16 ` Dave Abrahams
2011-11-06 10:59 ` martin rudalics
2011-11-06 9:26 ` Stephen J. Turnbull
1 sibling, 1 reply; 22+ messages in thread
From: Dave Abrahams @ 2011-11-06 9:16 UTC (permalink / raw)
To: martin rudalics; +Cc: emacs-devel
on Sun Nov 06 2011, martin rudalics <rudalics-AT-gmx.at> wrote:
>> So sometimes a child window is not necessarily a descendant window? If
>> so, that's just horrible.
>
> Some child windows have been adopted by their parents, others not.
> What's so horrible about that?
> Alternatively, we would have to demand that a fresh frame always has a
> parent window with one child window which doesn't strike me as very
> useful.
It's a broken metaphor if a child of X is not also a descendant of X,
and terribly counter-intuitive. I don't have any idea what it means for
a child window to be adopted, and I don't think it matters.
>> If you don't want to change the "subwindow" terminology, maybe "child
>> window" should become "immediate subwindow" or "direct subwindow."
>
> I already regret that I started to describe the window tree at all. Do
> you think that I did not consider alternative ways of doing that?
I wasn't aiming my suggestion at you in particular. I don't think
anything, the particular alternative I suggested might not have been
considered.
> Window trees are described in terms of four well known concepts - root
> window, parent window, child window and subwindow. All these relations
> have been in the Emacs sources for years (think of `frame-root-window',
> the parent and vchild/hchild fields in the window structure, or the
> routine delete_all_subwindows) and I don't have much interest changing
> anything here. I didn't use the terms "ancestor" and "descendant"
> because these would introduce a genealogical connotation that doesn't
> exist.
I'm sorry, but you did. You said "often a parent window is
genealogically a descendant..." Of course, you were explaining why the
term descendant was misleading, but I wouldn't have posted at all if it
weren't for the fact that you used these terms together.
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 8:50 ` martin rudalics
2011-11-06 9:16 ` Dave Abrahams
@ 2011-11-06 9:26 ` Stephen J. Turnbull
2011-11-06 10:59 ` martin rudalics
1 sibling, 1 reply; 22+ messages in thread
From: Stephen J. Turnbull @ 2011-11-06 9:26 UTC (permalink / raw)
To: martin rudalics; +Cc: Dave Abrahams, emacs-devel
martin rudalics writes:
> Window trees are described in terms of four well known concepts - root
> window, parent window, child window and subwindow.
In all contexts other than Emacs, subwindow and descendant window (or
perhaps child window) are synonymous. Breaking that connection is
begging for misunderstanding.
> I didn't use the terms "ancestor" and "descendant" because these
> would introduce a genealogical connotation that doesn't exist.
Does anyone ever actually think in genealogical terms? I'm shocked
that you think it matters. (That doesn't mean it doesn't matter, of
course, but I haven't seen any rationale posted for why it does and am
unable to imagine one myself.) Does anybody *ever* care about
anything except in which of the visible windows output will appear
(and similar static questions about the current window configuration)?
And at the Lisp level, only leaf windows are actually accessible as
far as I know. Are there any Lisp functions that operate on parent
windows, other than those that create or destroy children?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 9:16 ` Dave Abrahams
@ 2011-11-06 10:59 ` martin rudalics
2011-11-06 11:36 ` Dave Abrahams
0 siblings, 1 reply; 22+ messages in thread
From: martin rudalics @ 2011-11-06 10:59 UTC (permalink / raw)
To: Dave Abrahams; +Cc: emacs-devel
> It's a broken metaphor if a child of X is not also a descendant of X,
> and terribly counter-intuitive.
The manual doesn't use metaphors ...
> I don't have any idea what it means for
> a child window to be adopted, and I don't think it matters.
... but if you want to think metaphorically, then "adoption" is the term
to use.
>> I didn't use the terms "ancestor" and "descendant"
>> because these would introduce a genealogical connotation that doesn't
>> exist.
>
> I'm sorry, but you did. You said "often a parent window is
> genealogically a descendant..." Of course, you were explaining why the
> term descendant was misleading, but I wouldn't have posted at all if it
> weren't for the fact that you used these terms together.
How else would you describe the fact that a child window is older than
its parent window?
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 9:26 ` Stephen J. Turnbull
@ 2011-11-06 10:59 ` martin rudalics
2011-11-06 11:11 ` Eli Zaretskii
2011-11-06 22:15 ` Stephen J. Turnbull
0 siblings, 2 replies; 22+ messages in thread
From: martin rudalics @ 2011-11-06 10:59 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: Dave Abrahams, emacs-devel
> In all contexts other than Emacs, subwindow and descendant window (or
> perhaps child window) are synonymous. Breaking that connection is
> begging for misunderstanding.
That's why I didn't mention descendant windows in the first place.
> Does anyone ever actually think in genealogical terms? I'm shocked
> that you think it matters. (That doesn't mean it doesn't matter, of
> course, but I haven't seen any rationale posted for why it does and am
> unable to imagine one myself.) Does anybody *ever* care about
> anything except in which of the visible windows output will appear
> (and similar static questions about the current window configuration)?
People interested in manipulating window configurations will have to
care.
> And at the Lisp level, only leaf windows are actually accessible as
> far as I know. Are there any Lisp functions that operate on parent
> windows, other than those that create or destroy children?
Plenty. You can split, delete, and resize them (you can't resize and
delete a frame's root window, obviously).
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 10:59 ` martin rudalics
@ 2011-11-06 11:11 ` Eli Zaretskii
2011-11-06 23:17 ` Stephen J. Turnbull
2011-11-06 22:15 ` Stephen J. Turnbull
1 sibling, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2011-11-06 11:11 UTC (permalink / raw)
To: martin rudalics; +Cc: dave, stephen, emacs-devel
In order to make this discussion more productive, and avoid requesting
Martin to repeat things he already wrote, I suggest that people read
the discussions in bugs #9875 and #9873, and take it from there.
There's no need to repeat what's been said before.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 10:59 ` martin rudalics
@ 2011-11-06 11:36 ` Dave Abrahams
2011-11-06 13:24 ` martin rudalics
0 siblings, 1 reply; 22+ messages in thread
From: Dave Abrahams @ 2011-11-06 11:36 UTC (permalink / raw)
To: martin rudalics; +Cc: emacs-devel
on Sun Nov 06 2011, martin rudalics <rudalics-AT-gmx.at> wrote:
>>> I didn't use the terms "ancestor" and "descendant"
>>> because these would introduce a genealogical connotation that doesn't
>>> exist.
>>
>> I'm sorry, but you did. You said "often a parent window is
>> genealogically a descendant..." Of course, you were explaining why the
>> term descendant was misleading, but I wouldn't have posted at all if it
>> weren't for the fact that you used these terms together.
>
> How else would you describe the fact that a child window is older than
> its parent window?
I would say "the child window is older than the parent window."
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 11:36 ` Dave Abrahams
@ 2011-11-06 13:24 ` martin rudalics
0 siblings, 0 replies; 22+ messages in thread
From: martin rudalics @ 2011-11-06 13:24 UTC (permalink / raw)
To: Dave Abrahams; +Cc: emacs-devel
>> How else would you describe the fact that a child window is older than
>> its parent window?
>
> I would say "the child window is older than the parent window."
;-)
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 10:59 ` martin rudalics
2011-11-06 11:11 ` Eli Zaretskii
@ 2011-11-06 22:15 ` Stephen J. Turnbull
2011-11-07 10:17 ` martin rudalics
1 sibling, 1 reply; 22+ messages in thread
From: Stephen J. Turnbull @ 2011-11-06 22:15 UTC (permalink / raw)
To: martin rudalics; +Cc: Dave Abrahams, emacs-devel
martin rudalics writes:
> > Does anyone ever actually think in genealogical terms? [...]
> > Does anybody *ever* care about anything except in which of the
> > visible windows output will appear (and similar static questions
> > about the current window configuration)?
>
> People interested in manipulating window configurations will have to
> care.
They never have cared about genealogy in the past. I don't see why
they need to now; sure, you have the issue that window identity needs
to be considered carefully in implementation since variables may refer
to them. Of course they need to be implicitly aware of the tree
structure, but that can be deduced from the arrangement of windows in
most cases. The genealogical issues should be managed internally, and
AFAICS they can be managed internally.
> > And at the Lisp level, only leaf windows are actually accessible as
> > far as I know. Are there any Lisp functions that operate on parent
> > windows, other than those that create or destroy children?
>
> Plenty. You can split, delete, and resize them
Not up to now. You could split a leaf window; this creates a sibling,
and may involve either creation of a new parent or addition of the
sibling as a child of the existing parent. The function API doesn't
know about the parent though. Similarly, the Lisp API may delete all
siblings of a given window, in which case the parent would be deleted
and the child become a child of its grandparent. If you resize a leaf
perpendicularly to relation to its siblings, the parent will be
implicitly resized. Parents were simply a device for keeping the tree
structure.
Are you saying that parent windows are now visible to the Lisp API for
operations like split, even though you can't select them for
displaying buffers? This seems like a bad idea to me.
> (you can't resize and delete a frame's root window, obviously).
Except by resizing or deleting the frame.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 11:11 ` Eli Zaretskii
@ 2011-11-06 23:17 ` Stephen J. Turnbull
2011-11-07 10:18 ` martin rudalics
0 siblings, 1 reply; 22+ messages in thread
From: Stephen J. Turnbull @ 2011-11-06 23:17 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: dave, martin rudalics, emacs-devel
Eli Zaretskii writes:
> In order to make this discussion more productive, and avoid requesting
> Martin to repeat things he already wrote, I suggest that people read
> the discussions in bugs #9875 and #9873, and take it from there.
No, I'll just deal with the fallout when XEmacs needs to sync to this
ill-conceived mess. Martin doesn't write anything about why history
of a window tree matters to Lisp programmers, but instead writes many
things like
But since I apparently failed to convey the semantics of this
variable in the Elisp manual, someone else will have to take care
of writing such a description.
and
> Why do you need to talk about subwindows at all?
Because I didn't give this a thought yet ;-)
If he needs to repeat those statements at this point, y'all are up to
your necks in the Big Muddy.
And reading *all* of both bugs doesn't explain why history of a window
tree matters, except to Martin personally because he's the one who has
to make sure invariants are maintained across operations on window
trees. But the rest of us *using* the API are counting on him to get
those invariants right.
My suggestion for conformance to traditional nomenclature for windows
and established nomenclature for trees (terms being defined are
*emphasized*):
(1) A *window* is a rectangular area entirely included in a frame
in which a buffer can be displayed.
(2) Windows are *live* when they are leaf nodes in a "live" frame.
Otherwise they are *dead*. The behavior of dead windows is of
interest only to implementors (with the single exception of
windows resurrected by configuration restoration).
(3) Windows are organized into window groups. Each *window group* is
a one-dimensional contiguous array of conformable windows or
window groups. *Conformable* means that they all have the same
dimension in the direction perpendicular to the array, and that
where the sides touch, the corners coincide. (I'm not wedded to
the word "conformable".) Note that this means that every window
group covers a rectangle. Window groups are referred to as
"window rows" or "window columns" (*not* "horizontal" or
"vertical") when the direction of the array is important.
I'm not wedded to the term "window group", but it seems like it
would make sense to Lisp programmers who neither need nor want to
know about how window configurations are implemented. "Window
node" might do if emphasizing the tree nature of window
configurations seems like a good idea, with a "window" being a
special kind of "window node" that can display a buffer.
I don't know if the new implementation of window configurations
requires that groups be maximal, ie, prohibits
+---+---+---+---+
| 1 | 1 | 2 | 2 |
+---+---+---+---+
where "1" and "2" label window group membership. Whether it does
or not should be mentioned.
(4) Each window group is therefore the root of a *window tree*.
(Technically, a "window group tree", but that's a bit heavy, and I
agree with Eli that giving people the right idea is more important
than full precision in description.)
(5) A *window configuration* is a window tree that fills the whole
frame.
(6) The words *root*, *leaf*, *sibling*, *child*, *parent*,
*ancestor*, and *descendant* take their usual meanings in
discussion of trees.
Window APIs have a WINDOW argument. Unfortunately, this means that
where appropriate, older APIs that now operate on window groups as
well as windows need the sentence:
From Emacs 24, WINDOW may be a live window or window group.
or similar in their docstrings. The Lispref can establish a
convention to avoid such repetition.
Any place you feel a *need* to use the term "subwindow" needs more
thought about what you're actually doing. :-) (Of course I have an
ulterior motive here, in that XEmacs uses the term "subwindow" for a
completely different kind of object, a "native widget", but I think
that sentence is nevertheless true.)
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-05 4:36 Subwindow terminology Chong Yidong
2011-11-05 11:23 ` martin rudalics
@ 2011-11-07 10:16 ` martin rudalics
1 sibling, 0 replies; 22+ messages in thread
From: martin rudalics @ 2011-11-07 10:16 UTC (permalink / raw)
To: Chong Yidong; +Cc: emacs-devel
> I don't understand the term "subwindow" in the new window code. What's
> the difference between a subwindow and a child window? If there is
> none, we ought to refer to "child window" throughout, instead of adding
> another equivalent piece of jargon.
I now removed the term "subwindow" from code and documentations.
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 22:15 ` Stephen J. Turnbull
@ 2011-11-07 10:17 ` martin rudalics
0 siblings, 0 replies; 22+ messages in thread
From: martin rudalics @ 2011-11-07 10:17 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: Dave Abrahams, emacs-devel
> > > Does anyone ever actually think in genealogical terms? [...]
> > > Does anybody *ever* care about anything except in which of the
> > > visible windows output will appear (and similar static questions
> > > about the current window configuration)?
> >
> > People interested in manipulating window configurations will have to
> > care.
>
> They never have cared about genealogy in the past.
My reference is to your "care about anything ..." and not to your "think
in...".
> I don't see why
> they need to now; sure, you have the issue that window identity needs
> to be considered carefully in implementation since variables may refer
> to them. Of course they need to be implicitly aware of the tree
> structure, but that can be deduced from the arrangement of windows in
> most cases. The genealogical issues should be managed internally, and
> AFAICS they can be managed internally.
I never asked people to care about genealogical issues. Personally, I
think in invariants and never in genealogical terms. That's why I tend
to avoid terms like "descendant" or "ancestor" in descriptions.
> > > And at the Lisp level, only leaf windows are actually accessible as
> > > far as I know. Are there any Lisp functions that operate on parent
> > > windows, other than those that create or destroy children?
> >
> > Plenty. You can split, delete, and resize them
>
> Not up to now. You could split a leaf window; this creates a sibling,
> and may involve either creation of a new parent or addition of the
> sibling as a child of the existing parent. The function API doesn't
> know about the parent though. Similarly, the Lisp API may delete all
> siblings of a given window, in which case the parent would be deleted
> and the child become a child of its grandparent. If you resize a leaf
> perpendicularly to relation to its siblings, the parent will be
> implicitly resized. Parents were simply a device for keeping the tree
> structure.
>
> Are you saying that parent windows are now visible to the Lisp API for
> operations like split, even though you can't select them for
> displaying buffers?
Yes.
> This seems like a bad idea to me.
Why?
> > (you can't resize and delete a frame's root window, obviously).
>
> Except by resizing or deleting the frame.
Or the minibuffer window. I don't count these as operations on windows
though.
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-06 23:17 ` Stephen J. Turnbull
@ 2011-11-07 10:18 ` martin rudalics
2011-11-08 9:55 ` Chong Yidong
0 siblings, 1 reply; 22+ messages in thread
From: martin rudalics @ 2011-11-07 10:18 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: dave, Eli Zaretskii, emacs-devel
> No, I'll just deal with the fallout when XEmacs needs to sync to this
> ill-conceived mess. Martin doesn't write anything about why history
> of a window tree matters to Lisp programmers,
Because Martin doesn't care.
> but instead writes many
> things like
>
> But since I apparently failed to convey the semantics of this
> variable in the Elisp manual, someone else will have to take care
> of writing such a description.
>
> and
>
> > Why do you need to talk about subwindows at all?
>
> Because I didn't give this a thought yet ;-)
>
> If he needs to repeat those statements at this point, y'all are up to
> your necks in the Big Muddy.
The term subwindow was in code and documentations for many years. If
people decide, at a certain point in time, that they don't like the term
any more, they recognize too late in what kind of Muddy they've been all
that time.
> And reading *all* of both bugs doesn't explain why history of a window
> tree matters, except to Martin personally because he's the one who has
> to make sure invariants are maintained across operations on window
> trees. But the rest of us *using* the API are counting on him to get
> those invariants right.
As stated repeatedly I never cared about the history of a window tree
and will not do so in the future.
> Any place you feel a *need* to use the term "subwindow" needs more
> thought about what you're actually doing. :-) (Of course I have an
> ulterior motive here, in that XEmacs uses the term "subwindow" for a
> completely different kind of object, a "native widget", but I think
> that sentence is nevertheless true.)
Meanwhile I removed all references to the term subwindow from code and
documentation.
martin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: Subwindow terminology
2011-11-07 10:18 ` martin rudalics
@ 2011-11-08 9:55 ` Chong Yidong
0 siblings, 0 replies; 22+ messages in thread
From: Chong Yidong @ 2011-11-08 9:55 UTC (permalink / raw)
To: martin rudalics; +Cc: dave, Stephen J. Turnbull, Eli Zaretskii, emacs-devel
martin rudalics <rudalics@gmx.at> writes:
> The term subwindow was in code and documentations for many years. If
> people decide, at a certain point in time, that they don't like the
> term any more, they recognize too late in what kind of Muddy they've
> been all that time.
In Emacs 23, it was only present in the documentation for `window-tree'
AFAICT (and it was never defined very well).
> Meanwhile I removed all references to the term subwindow from code and
> documentation.
Thanks.
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2011-11-08 9:55 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-05 4:36 Subwindow terminology Chong Yidong
2011-11-05 11:23 ` martin rudalics
2011-11-05 12:50 ` Stephen J. Turnbull
2011-11-05 13:28 ` martin rudalics
2011-11-05 13:36 ` Stephen J. Turnbull
2011-11-05 15:05 ` martin rudalics
2011-11-05 16:54 ` Stephen J. Turnbull
2011-11-05 20:31 ` Dave Abrahams
2011-11-06 8:50 ` martin rudalics
2011-11-06 9:16 ` Dave Abrahams
2011-11-06 10:59 ` martin rudalics
2011-11-06 11:36 ` Dave Abrahams
2011-11-06 13:24 ` martin rudalics
2011-11-06 9:26 ` Stephen J. Turnbull
2011-11-06 10:59 ` martin rudalics
2011-11-06 11:11 ` Eli Zaretskii
2011-11-06 23:17 ` Stephen J. Turnbull
2011-11-07 10:18 ` martin rudalics
2011-11-08 9:55 ` Chong Yidong
2011-11-06 22:15 ` Stephen J. Turnbull
2011-11-07 10:17 ` martin rudalics
2011-11-07 10:16 ` martin rudalics
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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).