From: Ken Hori <fplemma@gmail.com>
To: Juri Linkov <juri@jurta.org>
Cc: martin rudalics <rudalics@gmx.at>, Emacs <emacs-devel@gnu.org>
Subject: Re: Window configurations (was: Gtk tabs in emacs, new branch)
Date: Thu, 29 Apr 2010 20:19:24 -0700 [thread overview]
Message-ID: <y2kd0dc7c8f1004292019h225f57edx78c8fcba4f802abe@mail.gmail.com> (raw)
In-Reply-To: <87zl0rtmqy.fsf@mail.jurta.org>
Juri,
Could we add as an extra `buffer-file-name' alist element in the sexp
of a window-configuration or is that a bad idea? (I was just tring to
reconstruct a window-configuration after an emacs reboot but quickly
found out filenames weren't just there.)
On Sun, Apr 25, 2010 at 11:33 AM, Juri Linkov <juri@jurta.org> wrote:
>>> ... Currently the design
>>> is at the stage of deciding what format is better to represent the
>>> window configuration. There are two options: a window tree and
>>> a plain list of windows. I am inclined to the second option
>>> since when saved it would be more compact.
>>
>> There's absolutely no need to make window configurations saved by
>> `current-window-configuration' (I call them CWCs here) and window
>> configurations saved for later reconstruction in a possibly different
>> session (called EWCs) save the same states of things.
>
> Yes. That's why I added a new argument `live-p' to
> `current-window-configuration-to-sexp'. When non-nil, it adds live data
> (window objects, buffer objects, markers, etc.) that are necessary
> when its Lisp expression will be used in the same session. When nil,
> it returns bare minimum necessary to save and restore in another session.
>
>> EWCs should IMHO strip window configurations to the absolutely needed
>> bare minimum. In particular `orig-top-line' and `orig-total-lines' do
>> more harm than good in EWCs (BTW, I've completely done away with these
>> in my rewrite of window.c)
>
> Do you plan to create a branch for your rewrite of window.c?
> It would be very interesting to look at it.
>
>> Coordinates should probably be rather stored as fractions instead of
>> absolute lines and columns. This would make it easier to (1) eventually
>> switch to pixel based coordinates and (2) put an EWC into an Emacs
>> window (that is, put an Emacs frame into an Emacs window) as some IDE
>> advocats mentioned earlier.
>
> There are no problems with storing coordinates as absolute lines and
> columns. After restoring absolute coordinates `set-window-configuration'
> resizes the frame thus keeping original relative sizes unchanged.
>
>> Since I suppose you're running `split-window' to restore configurations
>> you'd probably also want to remember whether a "split" was a vertical or
>> a horizontal one in EWCs. Note that CWCs don't do this since they need
>> to restore the configuration from the stored "coordinates" anyway, but
>> the design is a bit awkward as code like
>>
>> if (EQ (p->total_cols, XWINDOW (w->parent)->total_cols))
>>
>> in `set-window-configuration' shows.
>
> 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 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.
>
>> BTW in the earlier example structure you posted here I'm missing entries
>> for window-point, window-start, ... Was that intentional?
>
> There are entries `pointm' and `start' in the output of of the really
> working function `current-window-configuration-to-sexp'.
>
> But the example of the output of `window-configuration-to-sexp' is for
> demonstration purposes only. It doesn't work yet, because I'm not sure yet
> whether it's better than `current-window-configuration-to-sexp'.
>
> --
> Juri Linkov
> http://www.jurta.org/emacs/
>
>
>
next prev parent reply other threads:[~2010-04-30 3:19 UTC|newest]
Thread overview: 194+ 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 ` 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 ` Ken Hori [this message]
2010-04-30 20:33 ` 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
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=y2kd0dc7c8f1004292019h225f57edx78c8fcba4f802abe@mail.gmail.com \
--to=fplemma@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=juri@jurta.org \
--cc=rudalics@gmx.at \
/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.