unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
Cc: help-gnu-emacs@gnu.org, michael@cadilhac.name
Subject: Re: MY window tree!
Date: Mon, 15 Jan 2007 14:07:37 +0100	[thread overview]
Message-ID: <45AB7C99.6050002@gmail.com> (raw)
In-Reply-To: <45AB2CDB.1040207@gmx.at>

martin rudalics wrote:
>  > Saving and restoring properties is rather straightforward. Is there
>  > still any reason to have this in C?
> 
> I don't care about things like `buffer-display-count' or `use_time',
> hence I wouldn't know.  I would care, however, about the following:
> 
> 
> (1) You do
> 
> (newovl (make-overlay start end)))
> 
> but you never delete any overlays AFAICT.  Doesn't this mean to get
> _two_ overlays (whose properties are mostly identical but for the
> window-property) in the same place?  What's so problematic about simply
> changing the window-property of each affected overlay to "window"?


Then the old window that the overlay 'window property pointed to no 
longer exists there are no problem, but if it does then I think it is 
best to copy the overlay. I have changed the code to do distinguish 
those two cases now.

See also the comment in Bugs and limitation that I have added to 
winsav.el now.


> (2) The adjusting part doesn't work here yet, that is all windows are
> balanced in their heights and widths.  I don't understand the code yet
> but I can't imagine that it should be necessary to round the size of all
> windows, leaf windows should be left alone, I presume.  (BTW new-height,
> new-size, ..., old-width would be more readable.)
> 
> I tried with trivial code like
> 
>   (let ((tree (winsav-get-window-tree)))
>     (delete-other-windows)
>     (winsav-restore-window-tree
>      tree
>      (split-window (selected-window) nil t)))


Resizing is a bit harder than one think at the beginning. I forgot that 
it must be done iteratively. I have added that now, please try again.


> (3) I don't understand yet what happens when a particular window can't
> be split because it's too small.


I had not try taken care of that problem before. I have tried to do that 
now.


> (4) I think `window-start' should be preserved unless this would make
> `window-point' disappear.


Seems reasonable. I have tried to fix it.


> (5) A hook which passes old / new window arguments for each pair where a
> change took place would be urgently needed.


I do not see where to put in the hook. Maybe returning a list of window 
pairs ((old new) ...) would do what you want?

  reply	other threads:[~2007-01-15 13:07 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-13 10:11 MY window tree! martin rudalics
2007-01-14  9:35 ` Lennart Borgman (gmail)
2007-01-14 11:26   ` martin rudalics
2007-01-14 11:45     ` Lennart Borgman (gmail)
2007-01-14 15:03       ` Juanma Barranquero
2007-01-14 15:29         ` Lennart Borgman (gmail)
2007-01-14 17:41       ` martin rudalics
2007-01-14 17:56         ` Lennart Borgman (gmail)
2007-01-14 21:35         ` Lennart Borgman (gmail)
2007-01-14 22:57           ` Juanma Barranquero
2007-01-14 23:15             ` Lennart Borgman (gmail)
2007-01-15  7:27               ` martin rudalics
2007-01-15 13:07                 ` Lennart Borgman (gmail) [this message]
2007-01-15 13:50                   ` Juanma Barranquero
2007-01-15 14:09                     ` Lennart Borgman (gmail)
2007-01-15 14:33                       ` Juanma Barranquero
2007-01-15 14:41                         ` Lennart Borgman (gmail)
2007-01-15 14:56                           ` Juanma Barranquero
2007-01-15 16:32                             ` Lennart Borgman (gmail)
2007-01-15 17:33                               ` martin rudalics
2007-01-15 17:47                                 ` Lennart Borgman (gmail)
2007-01-15 17:58                                   ` martin rudalics
2007-01-15 18:16                                     ` Lennart Borgman (gmail)
2007-01-15 18:44                                       ` martin rudalics
2007-01-15 18:52                                         ` Lennart Borgman (gmail)
2007-01-15 17:26                           ` martin rudalics
2007-01-15 17:56                             ` Lennart Borgman (gmail)
2007-01-15 18:33                               ` martin rudalics
2007-01-15 18:14                             ` Lennart Borgman (gmail)
2007-01-15 19:22                               ` martin rudalics
2007-01-15 20:26                                 ` Lennart Borgman (gmail)
2007-01-15 22:44                                   ` martin rudalics
2007-01-16  0:14                                     ` Lennart Borgman (gmail)
2007-01-16  7:46                                       ` martin rudalics
2007-01-16 10:32                                         ` Lennart Borgman (gmail)
2007-01-16 14:23                                           ` martin rudalics
2007-01-16 17:59                                             ` Lennart Borgman (gmail)
2007-01-16 18:32                                               ` martin rudalics
2007-01-16 18:57                                                 ` Lennart Borgman (gmail)
2007-01-16 21:57                                                   ` martin rudalics
2007-01-16 22:32                                                     ` Lennart Borgman (gmail)
2007-01-17  6:36                                                       ` martin rudalics
  -- strict thread matches above, loose matches on Subject: below --
2007-01-13  0:17 Michaël Cadilhac
2007-01-13  0:33 ` Lennart Borgman (gmail)
2007-01-13  0:46   ` Michaël Cadilhac
2007-01-13  1:24     ` Lennart Borgman (gmail)
     [not found]     ` <mailman.3023.1168651462.2155.help-gnu-emacs@gnu.org>
2007-01-13  6:17       ` Stefan Monnier
2007-01-13  9:20 ` Michaël Cadilhac

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45AB7C99.6050002@gmail.com \
    --to=lennart.borgman@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=michael@cadilhac.name \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).