all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Juri Linkov <juri@jurta.org>
Cc: emacs-devel@gnu.org
Subject: Re: Window configurations
Date: Wed, 28 Apr 2010 09:12:19 +0200	[thread overview]
Message-ID: <4BD7DFD3.5030005@gmx.at> (raw)
In-Reply-To: <87vdbc7oxx.fsf@mail.jurta.org>

 >> Sounds reasonable.  If we apply this idea today, the restore-from-sexp
 >> step would decide how to rebuild the window tree from these geometry
 >> parameters - that means how to nest windows into each others.
 >
 > For an overlapping window manager there is no need to rebuild the window
 > tree from geometry parameters.  And for the current tiling window manager
 > you said that window coordinates are redundant.

That's what I said earlier.  But if we eventually do need them for an
overlapping window manager, we could build them into the current tiling
manager.  Just that (IMO) the tiling manager needs internal windows to
work correctly.  So the common format would be your four standard
parameters left column, top line, height and width for _all_ windows
including internal ones.

The restore step for the current tiling manager would have to process
the internal windows and reconstruct the nesting by comparing their
coordinates with those of the leaf windows - just like the current
`set-window-configuration' does in

	      if (!NILP (w->parent))
		{
		  if (EQ (p->total_cols, XWINDOW (w->parent)->total_cols))
		    {
		      XWINDOW (w->parent)->vchild = p->window;
		      XWINDOW (w->parent)->hchild = Qnil;
		    }
		  else
		    {
		      XWINDOW (w->parent)->hchild = p->window;
		      XWINDOW (w->parent)->vchild = Qnil;
		    }

where it sets the vertical / horizontal child of a parent window
according to whether the number of its columns equals that of its child
windows (this work by virtue of Emacs's ability to collapse matryoshka
windows although it might not harm much if for such windows the split
direction would be inverted).

The restore step for the overlapping manager would simply ignore
internal windows.  So we could restore configurations stored by a tiling
manager in an overlapping manager.

 > That's why I proposed
 > non-redundant and easy-to-define relative parameters.  I think it would
 > be sufficient to have two relative position parameters `left-window' and
 > `top-window' (that point to the left/top neighbor window) and two relative
 > size parameters `width' and `height' (fractions relative to the frame size).
 > I guess it would be possible to rebuild the window tree from this minimal
 > set of window parameters.

Do you mean left would point to the left neighbor and top to the
neighbor above?  How would you assign them for a four window
configuration like this:

  -----
|1 |2 |
|-----|
|3 |4 |
  -----

Currently either 1+2 and 3+4 or 1+3 and 2+4 form internal windows.  How
would you convey that information with relative parameters?

 > This looks like a new "intangible" window property discussed in the
 > window-group threads.  Have you implemented this in your rewrite of
 > window.c?

It's virtually impossible to do that in a strict sense (unless you go
for a `post-command-hook').  Note that you can always do a thing like
(select-window (minibuffer-window)).

What I've done is to make `other-window' by default not select certain
window types.  That default can be overridden by window parameters.  And
I wrote a `window-in-direction' function which does this for the window
in a given direction (I need this because I never use C-x o).

martin




  parent reply	other threads:[~2010-04-28  7:12 UTC|newest]

Thread overview: 221+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-01 16:52 Gtk tabs in emacs, new branch Angelo Graziosi
2010-04-01 17:45 ` Jan Djärv
2010-04-01 18:03   ` Juri Linkov
2010-04-01 20:18     ` Jan Djärv
2010-04-02  7:10       ` Jan Djärv
2010-04-01 20:51   ` Angelo Graziosi
2010-04-02  6:49     ` Jan Djärv
2010-04-02  9:21       ` Angelo Graziosi
2010-04-02  2:06   ` Stephen J. Turnbull
2010-04-02  7:00     ` Jan Djärv
2010-04-02  6:53 ` Jan Djärv
2010-04-02  9:59   ` Angelo Graziosi
2010-04-02 15:10     ` Jan Djärv
2010-04-02 16:55       ` Angelo Graziosi
2010-04-05  8:50       ` Angelo Graziosi
2010-04-10 12:44         ` Jan Djärv
2010-04-10 17:34           ` Angelo Graziosi
2010-04-10 18:03             ` Jan Djärv
2010-04-10 22:09               ` Angelo Graziosi
2010-04-11  5:45                 ` Jan Djärv
2010-04-11  8:16                   ` Angelo Graziosi
2010-04-11 10:52                     ` Jan Djärv
2010-04-11 17:28                       ` Angelo Graziosi
2010-04-11 18:33                         ` Jan Djärv
2010-04-21  8:55                         ` Juri Linkov
2010-04-21  9:46                           ` David Kastrup
2010-04-21 15:43                             ` Juri Linkov
     [not found]                               ` <jwv633k4rn2.fsf-monnier+emacs@gnu.org>
2010-04-22  8:16                                 ` Juri Linkov
2010-04-22 15:08                                   ` Jan Djärv
2010-04-23  8:33                                     ` Juri Linkov
2010-04-21 13:54                           ` Angelo Graziosi
2010-04-21 15:45                           ` Juri Linkov
2010-04-21 16:04                             ` Jan Djärv
2010-04-22  8:14                               ` Juri Linkov
2010-04-22 16:20                                 ` Juanma Barranquero
2010-04-24 18:45                                   ` Juri Linkov
2010-04-23 16:53                             ` Drew Adams
2010-04-23 18:02                               ` Juri Linkov
2010-04-23 18:28                                 ` Drew Adams
2010-04-24  9:17                                   ` Juri Linkov
2010-04-24 14:41                                     ` Drew Adams
2010-04-24 18:49                                       ` Juri Linkov
2010-04-24 19:24                                         ` Drew Adams
2010-04-25  5:36                                           ` Juri Linkov
2010-04-25  9:15                                             ` martin rudalics
2010-04-25 18:33                                               ` Window configurations (was: Gtk tabs in emacs, new branch) Juri Linkov
2010-04-26 16:16                                                 ` Window configurations martin rudalics
2010-04-27  8:54                                                   ` Juri Linkov
2010-04-27 12:54                                                     ` martin rudalics
2010-04-27 18:03                                                       ` Juri Linkov
2010-04-27 19:47                                                         ` Info buffers in Desktop Juri Linkov
2010-04-28  7:12                                                         ` martin rudalics [this message]
2010-04-28  8:27                                                           ` Window configurations Juri Linkov
2010-04-27 19:55                                                   ` Davis Herring
2010-04-28  7:12                                                     ` martin rudalics
2010-04-28 14:50                                                       ` Stefan Monnier
2010-04-28  8:35                                                     ` Juri Linkov
2010-04-28 14:15                                                       ` Davis Herring
2010-05-07 18:14                                                         ` Juri Linkov
2010-04-30  3:19                                                 ` Window configurations (was: Gtk tabs in emacs, new branch) Ken Hori
2010-04-30 20:33                                                   ` Window configurations Stefan Monnier
2010-05-02 20:31                                                     ` Juri Linkov
2010-05-02 23:34                                                       ` Drew Adams
2010-05-03  0:50                                                         ` Stefan Monnier
2010-05-03  0:57                                                           ` Juri Linkov
2010-05-03  2:50                                                             ` Stefan Monnier
2010-05-04 16:09                                                               ` Juri Linkov
2010-05-05  6:41                                                                 ` Stephen J. Turnbull
2010-05-05 13:22                                                                   ` Stefan Monnier
2010-05-05 14:35                                                                     ` Stephen J. Turnbull
2010-05-05 21:59                                                                 ` Juri Linkov
2010-05-02 20:28                                                   ` Juri Linkov
2010-05-03  3:31                                                     ` Ken Hori
2010-05-04 16:12                                                       ` Juri Linkov
2010-05-05  9:19                                                         ` martin rudalics
2010-05-05 18:05                                                           ` Juri Linkov
2010-05-06  8:21                                                             ` martin rudalics
2010-05-06 20:47                                                               ` Juri Linkov
2010-05-10 19:16                                                               ` Juri Linkov
2010-05-11  7:01                                                                 ` martin rudalics
2010-05-11 16:45                                                                   ` Juri Linkov
2010-05-12  9:29                                                                     ` martin rudalics
2010-05-13 22:46                                                                       ` Juri Linkov
2010-05-14  6:59                                                                         ` martin rudalics
2010-05-16 22:51                                                                           ` Juri Linkov
2010-05-17  9:06                                                                             ` martin rudalics
2010-05-17 22:54                                                                               ` Juri Linkov
2010-05-18 12:07                                                                                 ` martin rudalics
2010-05-31 17:28                                                                             ` martin rudalics
2010-05-31 18:39                                                                               ` Stefan Monnier
2010-05-31 19:12                                                                                 ` Lennart Borgman
2010-05-31 20:23                                                                                   ` Juri Linkov
2010-06-01  9:24                                                                                   ` martin rudalics
2010-05-31 20:19                                                                                 ` Juri Linkov
2010-06-01  3:13                                                                                   ` Stefan Monnier
2010-06-01  9:25                                                                                     ` martin rudalics
2010-06-01 12:58                                                                                       ` Stefan Monnier
2010-06-01  9:24                                                                                 ` martin rudalics
2010-06-01 13:08                                                                                   ` Stefan Monnier
2010-06-01 14:02                                                                                     ` Lennart Borgman
2010-06-01 16:04                                                                                     ` martin rudalics
2010-06-01 19:20                                                                                       ` Stefan Monnier
2010-06-02 12:59                                                                                         ` martin rudalics
2010-06-02 14:08                                                                                           ` Stefan Monnier
2010-06-03  8:55                                                                                             ` martin rudalics
2010-06-01 19:54                                                                                       ` Juri Linkov
2010-06-02 13:00                                                                                         ` martin rudalics
2010-06-02 19:46                                                                                           ` Juri Linkov
2010-06-03  8:55                                                                                             ` martin rudalics
2010-06-03 18:55                                                                                               ` Juri Linkov
2010-06-14 17:05                                                                                         ` martin rudalics
2010-06-14 21:54                                                                                           ` Juri Linkov
2010-06-15  7:08                                                                                             ` martin rudalics
2010-06-15 21:31                                                                                               ` Juri Linkov
2010-06-16 17:25                                                                                                 ` martin rudalics
2010-06-16 20:51                                                                                                   ` Juri Linkov
2010-06-17  7:58                                                                                                     ` martin rudalics
2010-06-17  8:42                                                                                                       ` Juri Linkov
2010-06-17 10:20                                                                                                         ` martin rudalics
2010-06-17 20:38                                                                                                           ` Juri Linkov
2010-06-17 22:55                                                                                                             ` Lennart Borgman
2010-06-18  6:34                                                                                                             ` martin rudalics
2010-06-18  8:28                                                                                                               ` Juri Linkov
2010-06-18  9:04                                                                                                                 ` martin rudalics
2010-06-19  8:50                                                                                                                   ` Juri Linkov
2010-06-19 13:47                                                                                                                     ` martin rudalics
2010-06-19 14:12                                                                                                                       ` Juri Linkov
2010-06-19 18:56                                                                                                                         ` martin rudalics
2010-06-01 19:51                                                                                   ` Juri Linkov
2010-06-02 13:00                                                                                     ` martin rudalics
2010-06-02 19:49                                                                                       ` Juri Linkov
2010-06-03  8:57                                                                                         ` martin rudalics
2010-06-03 14:22                                                                                           ` Stefan Monnier
2010-06-03 15:42                                                                                             ` martin rudalics
2010-06-04 13:11                                                                                               ` Stefan Monnier
2010-06-04 14:07                                                                                                 ` martin rudalics
2010-06-04 16:59                                                                                                   ` Juri Linkov
2010-06-05 12:49                                                                                                     ` martin rudalics
2010-06-04 10:36                                                                                             ` Richard Stallman
2010-06-04 14:06                                                                                               ` martin rudalics
2010-06-03 18:54                                                                                           ` Juri Linkov
2010-06-04  8:11                                                                                             ` martin rudalics
2010-06-04 16:57                                                                                               ` Juri Linkov
2010-06-05 12:49                                                                                                 ` martin rudalics
2010-06-05 19:47                                                                                                   ` Juri Linkov
2010-06-06 13:21                                                                                                     ` Stefan Monnier
2010-06-07 18:31                                                                                                       ` Juri Linkov
2010-06-03 18:52                                                                                   ` Juri Linkov
2010-06-04  8:11                                                                                     ` martin rudalics
2010-06-04 17:09                                                                                       ` Juri Linkov
2010-06-05 12:49                                                                                         ` martin rudalics
2010-06-05 19:49                                                                                           ` Juri Linkov
2010-06-05 21:58                                                                                             ` Stefan Monnier
2010-06-07 18:30                                                                                               ` Juri Linkov
2010-06-06 10:38                                                                                             ` martin rudalics
2010-06-07  1:12                                                                                               ` Stefan Monnier
2010-06-07 13:40                                                                                                 ` martin rudalics
2010-06-07 15:36                                                                                                   ` Stefan Monnier
2010-06-07 17:38                                                                                                     ` Lennart Borgman
2010-06-08 13:06                                                                                                     ` martin rudalics
2010-06-08 20:19                                                                                                       ` Stefan Monnier
2010-06-11 13:20                                                                                                         ` martin rudalics
2010-06-11 13:52                                                                                                           ` Stefan Monnier
2010-06-11 17:12                                                                                                             ` martin rudalics
2010-05-05 18:19                                                           ` Stefan Monnier
2010-05-06  8:22                                                             ` martin rudalics
2010-05-06 13:04                                                               ` Stefan Monnier
2010-05-06 14:59                                                                 ` martin rudalics
2010-05-06 16:17                                                                   ` Stefan Monnier
2010-05-08  3:09                                                           ` Kevin Rodgers
2010-05-08 13:54                                                             ` martin rudalics
2010-05-08 15:42                                                               ` Lennart Borgman
2010-05-09 14:01                                                                 ` martin rudalics
2010-05-09 14:21                                                                   ` Lennart Borgman
2010-05-09 15:01                                                                     ` martin rudalics
2010-06-29  9:01                                                 ` martin rudalics
2010-06-29  9:23                                                   ` Juri Linkov
2010-06-29 10:01                                                     ` martin rudalics
2010-06-29 10:37                                                       ` Juanma Barranquero
2010-06-29 12:16                                                         ` martin rudalics
2010-06-29 20:14                                                           ` Juanma Barranquero
2010-06-29 20:01                                                   ` Juri Linkov
2010-06-30  6:35                                                     ` martin rudalics
2010-06-30  8:12                                                       ` Juri Linkov
2010-04-10 19:19             ` Gtk tabs in emacs, new branch Stefan Monnier
2010-04-02 16:19     ` Uwe Siart
2010-04-02 18:31       ` Daniel Colascione
2010-04-02 20:38         ` Stefan Monnier
2010-04-03  6:29         ` Uwe Siart
2010-04-03  9:07           ` Uwe Siart
2010-04-02  6:53 ` Uwe Siart
2010-04-02  7:25   ` Jan Djärv
2010-04-04 11:01     ` Juri Linkov
2010-04-02 12:19   ` Stephen J. Turnbull
  -- strict thread matches above, loose matches on Subject: below --
2010-05-05 13:31 Window configurations grischka
2010-05-05 18:10 ` Juri Linkov
2010-05-05 19:47   ` grischka
2010-05-05 20:07 ` Drew Adams
2010-05-06 11:18 grischka
2010-05-11 13:54 grischka
2010-05-12  9:28 ` martin rudalics
2010-05-12 11:12   ` grischka
2010-05-12 13:03     ` martin rudalics
2010-05-12 18:33       ` grischka
2010-05-13 10:22         ` martin rudalics
2010-05-13 11:40           ` grischka
2010-05-13 13:53             ` martin rudalics
2010-05-13 17:13               ` grischka
2010-05-13 22:57                 ` Juri Linkov
2010-05-14  6:58                 ` martin rudalics
2010-05-14 10:42                   ` grischka
2010-05-14 11:45                     ` martin rudalics
2010-05-14 13:32                       ` grischka
2010-05-13 22:54             ` Juri Linkov
2010-05-14 11:12               ` grischka
2010-05-14 11:45                 ` martin rudalics
2010-05-16 22:49               ` Juri Linkov
2010-05-17  9:06                 ` martin rudalics
2010-05-17 22:48                   ` Juri Linkov
2010-05-13 22:48   ` Juri Linkov
2010-05-14  7:00     ` martin rudalics

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=4BD7DFD3.5030005@gmx.at \
    --to=rudalics@gmx.at \
    --cc=emacs-devel@gnu.org \
    --cc=juri@jurta.org \
    /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.