From: Eli Zaretskii <eliz@gnu.org>
To: Andrea Cardaci <cyrus.and@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Zoom: a window management minor mode -- best practices and questions
Date: Wed, 02 May 2018 21:58:18 +0300 [thread overview]
Message-ID: <83lgd1q3zp.fsf@gnu.org> (raw)
In-Reply-To: <CACMsj9N_1NhujXZ5r6kAxm6X+4bOTnpjroD2wHaw5jG5vtEFvw@mail.gmail.com> (message from Andrea Cardaci on Wed, 2 May 2018 20:41:38 +0200)
> From: Andrea Cardaci <cyrus.and@gmail.com>
> Date: Wed, 2 May 2018 20:41:38 +0200
> Cc: emacs-devel@gnu.org
>
> The handler should be triggered in these cases:
> - a window is resized;
This is the one I mentioned as missing.
> - a window is selected;
Hooking select-window will take care of this one.
> - a window is created (this is actually included in the "a window is resized" case);
If you mean that the selected window is resized as result of creating
a new window, then yes, "window is resized" takes care of this. (What
about deleting a window, btw?)
> - a window changes its buffer (because it's possible to exclude certain windows from zooming so the layout
> should be updated accordingly).
The hook suggested by Martin should take care of this.
> Besides, doesn't this in principle suffer of the same do-something-that-triggers-the-hook-inside-such-hook
> problem like `window-size-change-functions`?
No, because pre-redisplay-functions are run _before_ anything
significant in redisplay, so your chances to confuse redisplay are
nil.
> > Alternatively, we could provide some control to disable resizing of
> > the selected window
>
> Please elaborate on this point. How can it help this situation?
Well, as you said, the main purpose of Zoom is to prevent resizing of
the selected window due to Emacs's own considerations. My
interpretation of this was that you want to control the size of the
selected window, and disallow anything else changing it. So if you
change the size at select-window time, and the size is not allowed to
change after that, you have reached your purpose, right?
next prev parent reply other threads:[~2018-05-02 18:58 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-02 16:31 Zoom: a window management minor mode -- best practices and questions Andrea Cardaci
2018-05-02 17:32 ` Eli Zaretskii
2018-05-02 18:41 ` Andrea Cardaci
2018-05-02 18:58 ` Eli Zaretskii [this message]
2018-05-03 7:11 ` martin rudalics
2018-05-03 9:50 ` Andrea Cardaci
2018-05-03 9:46 ` Andrea Cardaci
2018-05-03 7:11 ` martin rudalics
2018-05-03 9:47 ` Andrea Cardaci
2018-05-07 12:32 ` Andrea Cardaci
2018-05-07 18:19 ` Eli Zaretskii
2018-05-08 10:40 ` Andrea Cardaci
2018-05-08 14:53 ` Noam Postavsky
2018-05-08 15:03 ` Andrea Cardaci
2018-05-09 12:33 ` Stefan Monnier
2018-05-08 17:52 ` Eli Zaretskii
2018-05-09 7:00 ` martin rudalics
2018-05-09 16:06 ` Andrea Cardaci
2018-05-10 6:27 ` martin rudalics
2018-05-10 10:11 ` Andrea Cardaci
2018-05-10 10:27 ` martin rudalics
2018-05-10 10:34 ` Andrea Cardaci
2018-05-10 10:37 ` 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=83lgd1q3zp.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=cyrus.and@gmail.com \
--cc=emacs-devel@gnu.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.