all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Lennart Borgman <lennart.borgman@gmail.com>
To: martin rudalics <rudalics@gmx.at>
Cc: Emacs-Devel devel <emacs-devel@gnu.org>
Subject: Re: moving window handling into lisp
Date: Fri, 21 Aug 2009 15:58:26 +0200	[thread overview]
Message-ID: <e01d8a50908210658m527eea3bld6c54c4a5a6bff48@mail.gmail.com> (raw)
In-Reply-To: <4A8E95A3.5040604@gmx.at>

On Fri, Aug 21, 2009 at 2:40 PM, martin rudalics<rudalics@gmx.at> wrote:
>>>> The algorithm computes level by level in the second pass (ie on its
>>>> way down) how the windows should be sized. So you have the sizes for
>>>> all windows on that level at once.
>>> I still don't understand what a "level" is.
>>
>> All children to a window are on the same level.
>
> So you want a routine to set the sizes of all children of a window?
> What would you want to pass to that routine?  A list?


Yes, but I am starting to wonder a bit what I really want. It looks to
me like I instead could use your new functions+remove restriction
check. See below.


>> Do I understand you right, do you say: These should set the size
>> without any checking.
>
> The new size of one window.  Applying the new sizes of all windows is
> done transactionally, all at once (or none at all if there's a failure).


There are some ideas here that are rather similar but differs a bit.
You and Stefan have been talking about the idea about treating the
size changes as transactions with possible roll back.

That seems ok to me. But I choosed a little bit different route. I am
trying to make the calculations first and only apply them if new sizes
fit. However with my idea there is still the problem of applying the
new sizes without bumping into any restriction during the applying
phase. This could happen even if you know that the final result will
fit.

That was the reason I asked for a function above to set the sizes of
all children at once. But such a function will not help since bumbing
into restrictions can happen further down the tree also.

So what I need is still a way to apply the new sizes without
restriction checks during that phase. Am I clear enough when I try to
explain this? How should I do to avoid the restrictions in this phase?


>> You can make a lisp copy of the configuration. This copy should
>> contain just the info needed to compute the new sizes. If you want the
>> sizes after deletion then just do not include the window you want to
>> delete in the copy.
>
> And who does delete the window _and_ resize the remaining ones?


You ... ;-)

Yes, I know that this is lacking. I have been wondering about this
part. It is not clear to me how resizing and deletion/creation of
windows are tighed together in the current code. I think those parts
should be broken up. Can you please try to explain how things are now
and if you see some way to brake those things apart?


>> I guessed there must be some pointer (in a general sense) for each
>> frame to the root window. I do not know the actual implementation, but
>> I just glanced at it. Unfortunately it takes some time for me to read
>> C so I guess a little. I can see there is a Lisp_Object called
>> root_window in struct frame. This is the pointer I am talking about.
>>
>> My question (and suggestion) to you is this: Would it be possible to
>> temporarily replace the frames root_window with a new window when the
>> frame size gets so small that the window configuration does not fit?
>> Whether this is easy (or perhaps even possible) is of course dependent
>> on the details in this implementation.
>>
>> It depends on for example on how drawing of windows are done. Is
>> drawing of a frame something that starts from the frame and then goes
>> down to look at the windows? Or does the windows live a life on their
>> on in this regard? I have assumed the former when I suggested to just
>> swap the roor_window pointer. You know more about the implementation
>> details and can probably give a better answer.
>
> It would get us into hell's kitchen to just swap some pointers.  The
> more so because you want redisplay to happen in between.  What do you
> think window-configurations have been invented for?


Window configurations was invented for this situation. It has a much
broader use.

But if you say it is impossible to switch this pointer then I surely
assume that you are right (since you know better about how the code
has been structured).

Then I assume that window configurations must be used to get my
suggestion to work. The drawback I see then is that window pointers
migh gets lost. Are there any way around that?


>> You seem to suggest that it would be hard to understand for the user.
>> In that case, why?
>
> Because at the time the window-manager shrinks my Emacs frame I usually
> want to work with some other application.


I am sorry, but I can't see why that should make it harder to
understand. The text to show can of course be changed to avoid some
confusion. Does not that help?


>>> You do undelete all the time.  It's completely transparent.
>>
>> How can it be transparent if windows disappears and reappears? I must
>> be misunderstanding you somehow...
>
> There might be no redisplay in between.


How can you avoid that when the frame gets too small?


>>>> - size-0 windows in a case like this would be the same.
>>> Many applications do that.
>>
>> Can you explain how you mean?
>
> In many applications (Thunderbird is one of them) I can make subwindows
> disappear completely by dragging one of their borders and make them
> reappear later by dragging on the border where they disappeared.


Are there no sign at all that there are 0-size windows there?


> martin
>




  reply	other threads:[~2009-08-21 13:58 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-27  8:32 moving window handling into lisp Miles Bader
2009-07-27 13:37 ` martin rudalics
2009-07-27 13:41   ` Lennart Borgman
2009-07-27 13:45     ` martin rudalics
2009-07-27 13:58       ` Lennart Borgman
2009-07-27 14:35         ` martin rudalics
2009-07-27 14:41           ` Lennart Borgman
2009-07-27 15:02             ` martin rudalics
2009-07-27 15:28               ` Lennart Borgman
2009-07-27 16:52                 ` martin rudalics
2009-07-27 16:58                   ` Lennart Borgman
2009-07-27 18:18                   ` Stefan Monnier
2009-07-28  7:38                     ` martin rudalics
2009-07-28  9:39                       ` Lennart Borgman
2009-07-28 12:25                         ` martin rudalics
     [not found]                           ` <e01d8a50907280532kcff2d1w15567a430668a502@mail.gmail.com>
2009-07-28 13:23                             ` martin rudalics
2009-07-28 13:44                               ` Lennart Borgman
2009-07-29  9:04                                 ` martin rudalics
2009-07-28 13:47                       ` Stefan Monnier
2009-07-28 14:11                         ` Lennart Borgman
2009-07-29  9:05                         ` martin rudalics
2009-07-29 14:05                           ` Stefan Monnier
2009-08-01  2:20                             ` Miles Bader
2009-08-03 21:29                               ` Stefan Monnier
2009-08-11  9:18                             ` martin rudalics
2009-08-11 19:16                               ` Stefan Monnier
2009-08-11 19:29                                 ` Lennart Borgman
2009-08-12  8:57                                   ` martin rudalics
2009-08-12  9:02                                     ` Lennart Borgman
2009-08-12 13:33                                       ` martin rudalics
2009-08-12 15:57                                         ` Lennart Borgman
2009-08-12 17:05                                           ` martin rudalics
2009-08-12 19:39                                             ` Lennart Borgman
2009-08-12 21:10                                               ` Lennart Borgman
2009-08-13  9:55                                                 ` martin rudalics
2009-08-13  9:57                                                   ` Lennart Borgman
2009-08-13 10:25                                                     ` Lennart Borgman
2009-08-13 11:32                                                       ` Lennart Borgman
2009-08-13 12:49                                                         ` Lennart Borgman
2009-08-13 13:56                                                           ` martin rudalics
2009-08-13 16:43                                                             ` Lennart Borgman
2009-08-13 18:07                                                               ` martin rudalics
2009-08-14  1:13                                                                 ` Lennart Borgman
2009-08-14  7:18                                                                   ` martin rudalics
2009-08-14 11:21                                                                     ` Lennart Borgman
2009-08-14 13:21                                                                       ` martin rudalics
2009-08-12  8:56                                 ` martin rudalics
2009-08-13  2:32                                   ` Stefan Monnier
2009-08-13  9:54                                     ` martin rudalics
2009-08-13 17:00                                       ` Stefan Monnier
2009-08-13 18:09                                         ` martin rudalics
2009-08-14  1:47                                           ` Stephen J. Turnbull
2009-08-14  7:17                                             ` martin rudalics
2009-08-14  6:42                                       ` Richard Stallman
2009-08-14  7:18                                         ` martin rudalics
2009-08-14 20:56                                           ` Richard Stallman
2009-08-15 10:12                                             ` martin rudalics
2009-08-15 19:47                                               ` Stefan Monnier
2009-08-14 15:39                                         ` Stefan Monnier
2009-08-14 15:42                                           ` Lennart Borgman
2009-08-14 18:26                                             ` Stefan Monnier
2009-08-15 10:12                                           ` martin rudalics
2009-08-15 11:02                                             ` Lennart Borgman
2009-08-15 12:44                                               ` martin rudalics
2009-08-15 13:35                                                 ` David Kastrup
2009-08-15 13:39                                                   ` Lennart Borgman
2009-08-15 16:11                                                     ` martin rudalics
2009-08-15 16:19                                                       ` Lennart Borgman
2009-08-15 17:37                                                         ` martin rudalics
2009-08-15 18:18                                                           ` Lennart Borgman
2009-08-16 10:25                                                             ` martin rudalics
2009-08-16 11:14                                                               ` Lennart Borgman
2009-08-16 12:12                                                                 ` David Kastrup
2009-08-16 12:19                                                                   ` Lennart Borgman
2009-08-16 15:17                                                                   ` martin rudalics
2009-08-16 16:15                                                                     ` David Kastrup
2009-08-16 19:24                                                                       ` martin rudalics
2009-08-16 12:17                                                                 ` martin rudalics
2009-08-16 12:26                                                                   ` Lennart Borgman
2009-08-16 15:18                                                                     ` martin rudalics
2009-08-15 19:05                                                           ` Stephen J. Turnbull
2009-08-16 10:26                                                             ` martin rudalics
2009-08-16 11:16                                                               ` Lennart Borgman
2009-08-16 12:17                                                                 ` martin rudalics
2009-08-16 12:29                                                                   ` Lennart Borgman
2009-08-16 15:18                                                                     ` martin rudalics
2009-08-16 14:49                                                               ` Stephen J. Turnbull
2009-08-16 15:31                                                                 ` martin rudalics
2009-08-16 16:28                                                                   ` Stephen J. Turnbull
2009-08-16 19:25                                                                     ` martin rudalics
2009-08-15 15:07                                                   ` Jan Djärv
2009-08-15 15:38                                                     ` David Kastrup
2009-08-15 16:07                                                   ` martin rudalics
2009-08-15 18:21                                                     ` Stephen J. Turnbull
2009-08-16 10:25                                                       ` martin rudalics
2009-08-15 19:51                                             ` Stefan Monnier
2009-08-16 10:26                                               ` martin rudalics
2009-08-16 11:18                                                 ` Lennart Borgman
2009-08-16 12:17                                                   ` martin rudalics
2009-08-16 12:30                                                     ` Lennart Borgman
2009-07-27 14:00   ` Miles Bader
2009-07-27 14:36     ` martin rudalics
     [not found] ` <4A87F8B8.6050102@gmx.at>
     [not found]   ` <e01d8a50908160523r12216cffm34060d2793943785@mail.gmail.com>
     [not found]     ` <4A882312.6020106@gmx.at>
     [not found]       ` <e01d8a50908191816p2d9e978dw6aa0623c79dd8699@mail.gmail.com>
     [not found]         ` <4A8D12B3.6070502@gmx.at>
     [not found]           ` <e01d8a50908200219o69f67900lb9fa9368e9aadf62@mail.gmail.com>
     [not found]             ` <4A8D46C9.1010108@gmx.at>
     [not found]               ` <e01d8a50908200622y101e5b2bq9fb5874cbb8c81fe@mail.gmail.com>
     [not found]                 ` <4A8D66D5.3000600@gmx.at>
2009-08-20 15:41                   ` Lennart Borgman
2009-08-20 18:15                     ` martin rudalics
2009-08-20 23:08                       ` Lennart Borgman
2009-08-21 12:40                         ` martin rudalics
2009-08-21 13:58                           ` Lennart Borgman [this message]
2009-08-22 11:00                             ` martin rudalics
2009-08-22 13:45                               ` Lennart Borgman
2009-08-22 14:17                                 ` martin rudalics
2009-08-21 19:34                       ` Stefan Monnier
2009-08-22 11:01                         ` martin rudalics
2009-08-21  0:19                     ` Richard Stallman
2009-08-21 12:40                       ` martin rudalics
  -- strict thread matches above, loose matches on Subject: below --
2009-08-17 19:06 grischka
2009-08-18  7:13 ` martin rudalics
2009-08-18 11:38 ` Lennart Borgman
2009-08-19  9:15   ` grischka
2009-08-19 12:45     ` martin rudalics
2009-08-20 11:45       ` grischka
2009-08-20 12:51         ` martin rudalics
2009-08-20 13:05           ` David Kastrup
2009-08-20 15:08             ` martin rudalics
2009-08-20 19:35           ` grischka
2009-08-21 12:22             ` martin rudalics
2009-08-21 19:32               ` Stefan Monnier
2009-08-22  4:55                 ` Stephen J. Turnbull
2009-08-23  1:01                   ` Stefan Monnier
2009-08-24 13:10               ` grischka
2009-08-19 13:01     ` Lennart Borgman

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=e01d8a50908210658m527eea3bld6c54c4a5a6bff48@mail.gmail.com \
    --to=lennart.borgman@gmail.com \
    --cc=emacs-devel@gnu.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.