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' <emacs-devel@gnu.org>
Subject: Re: Window configurations
Date: Mon, 26 Apr 2010 18:16:34 +0200	[thread overview]
Message-ID: <4BD5BC62.5070306@gmx.at> (raw)
In-Reply-To: <87zl0rtmqy.fsf@mail.jurta.org>

 > Do you plan to create a branch for your rewrite of window.c?
 > It would be very interesting to look at it.

I have to catch up with recent developments on the trunk - currently I'm
at revision 99248.  And I yet have to write Change Logs.

 > No, I don't use `split-window'.  I use exactly the same algorithm as in
 > `set-window-configuration', and additionally make new windows.
 > In my tests, this works correctly.

That's what I intended to do when I first looked into this.  Making new
windows essentially has the problem that when, for whatever reason,
coordinates are garbled, you end up with a distorted frame and, in the
worst case, crash Emacs.  Checking window edges is simple with an
existing window tree.  But if you build the entire tree from scatch, you
also have to provide a safe way to GC windows you made just in case they
don't fit.  With `split-window' you always add one window at a time and
you never make a new one unless you're sure it fits.

By no means I want to talk you out of this ;-) but `split-window' is a
socially well-established function.  Saved window configurations will
hardly ever get used that much.  And we'll already have a hard time to
maintain compatibility, for example, when you want to restore a
configuration saved by Emacs 27 in an Emacs 29 session (or vice-versa).

 >> That said, the *entire* coordinate information of a particular window in
 >> an EWC would consist of (1) whether it is a horizontal or a vertical
 >> combination and (2) the proportional space - either a float or the
 >> fraction of "some largest integer" - occupied by the window wrt to its
 >> parent window.
 >
 > Currently `set-window-configuration-from-sexp' works without these
 > parameters.  But maybe they would be useful for user-defined window
 > configurations.

Users "define" window configurations by splitting and deleting windows.
They have no idea of the underlying window tree.  But if you don't use
`split-window' storing the type of window combinations doesn't make
sense anyway.  It's just that current window configurations have lots of
redundancy: For a vertical combination, the widths of all subwindows are
the same as that of the parent window, top-lines can be calculated on
the fly by adding the top-line of the left sibling to its height, ...

Anyway, the greatest problem IMO is to get windows correlate with their
buffers.  I don't think that restoring ediff configurations will become
ever feasible (unless you build this into the ediff code) and I'm also
pessimistic about Info buffers - in particular cloned ones.  And
obviously we'll fail to handle code based on window objects or overlays
with a window property.

But for merely "normal" buffers the integrity of buffer-local variables
affecting size and appearance of windows displaying them must be
preserved.  For example, when a buffer has `window-size-fixed' non-nil,
any frame resizing step in your `set-window-configuration' should keep
the size of the window fixed.

martin




  reply	other threads:[~2010-04-26 16:16 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                                                 ` martin rudalics [this message]
2010-04-27  8:54                                                   ` Window configurations 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                                                         ` Window configurations martin rudalics
2010-04-28  8:27                                                           ` 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=4BD5BC62.5070306@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.