[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Zoom: a window management minor mode -- best practices and questions
From: |
martin rudalics |
Subject: |
Re: Zoom: a window management minor mode -- best practices and questions |
Date: |
Thu, 03 May 2018 09:11:18 +0200 |
> The handler should be triggered in these cases:
> - a window is resized;
> - a window is selected;
> - a window is created (this is actually included in the "a window is resized"
> case);
> - a window changes its buffer (because it's possible to exclude certain
> windows from zooming so the layout should be updated accordingly).
There are probably other ones like when a window gets deleted or the
configuration changes but all these should get caught by your code.
I'm not sure why hooking 'minibuffer-setup-hook' is needed, I suppose
it is not, at least for Emacs 26. Other than that your code seems
valid to me (even disabling 'window-configuration-change-hook' in
'balance-windows' is OK, that hook should not get called there any
more).
Obviously, 'window-size-change-functions' is meant for applications to
react to size changes and possibly readjust buffer text shown in a
window whose size changed. You should warn other applications to make
sure they _append_ their functions to this hook in order to be aware
of your adjustments. Maybe you should re-prepend your function when
you find out that other ones have been prepended in between.
Otherwise, I would use 'buffer-list-update-hook' instead of advising
'select-window' to make sure that all occurences of selecting a window
get caught. And I would experimentally try to not zoom immediately in
'buffer-list-update-hook' and 'window-configuration-change-hook' but
simply feed these occurrencs to 'pre-redisplay-function' to reduce the
number of times you zoom. 'window-pixel-height-before-size-change'
and 'window-pixel-width-before-size-change' should allow to easily do
the 'window-size-change-functions' part in 'pre-redisplay-function' as
well. Though my personal experiences with 'pre-redisplay-function'
are not bright enough to recommend it for sure.
martin
- Zoom: a window management minor mode -- best practices and questions, Andrea Cardaci, 2018/05/02
- Re: Zoom: a window management minor mode -- best practices and questions, Eli Zaretskii, 2018/05/02
- Re: Zoom: a window management minor mode -- best practices and questions,
martin rudalics <=
- Re: Zoom: a window management minor mode -- best practices and questions, Andrea Cardaci, 2018/05/03
- Re: Zoom: a window management minor mode -- best practices and questions, Andrea Cardaci, 2018/05/07
- Re: Zoom: a window management minor mode -- best practices and questions, Eli Zaretskii, 2018/05/07
- Re: Zoom: a window management minor mode -- best practices and questions, Andrea Cardaci, 2018/05/08
- Re: Zoom: a window management minor mode -- best practices and questions, Noam Postavsky, 2018/05/08
- Re: Zoom: a window management minor mode -- best practices and questions, Andrea Cardaci, 2018/05/08
- Re: Zoom: a window management minor mode -- best practices and questions, Stefan Monnier, 2018/05/09
- Re: Zoom: a window management minor mode -- best practices and questions, Eli Zaretskii, 2018/05/08
- Re: Zoom: a window management minor mode -- best practices and questions, martin rudalics, 2018/05/09
- Re: Zoom: a window management minor mode -- best practices and questions, Andrea Cardaci, 2018/05/09