all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "martin rudalics" <rudalics@gmx.at>
Cc: Emacs-Devel <emacs-devel@gnu.org>
Subject: RE: view-mode exit hook?
Date: Tue, 18 Dec 2007 14:47:59 -0800	[thread overview]
Message-ID: <BNELLINCGFJLDJIKDGACGEODCFAA.drew.adams@oracle.com> (raw)
In-Reply-To: <47684103.4000400@gmx.at>

>  > What is the recommended way to run some code when view-mode exits?
>  > For entering view-mode, `view-mode-hook' can be used (it is run by
>  > `view-mode-enable'), but I don't see anything equivalent for
>  > exiting. Are users supposed to advise view-mode code (e.g.
>  > `view-mode-exit'), or is there a better, recommended course of
>  > action?
>  >
>  > My use case: When view-mode is entered, my own code fits the
>  > frame (assuming it's one-window-p) to the viewed buffer. My
>  > tweaked version of `display-buffer' takes care of that. But
>  > when view-mode is exited, the frame is not re-fit to the
>  > buffer that is now displayed there. I'm looking for a way to
>  > call my function `fit-frame', preferably via a hook run after
>  > view-mode has exited and the other buffer is displayed in the
>  > frame, that is, at the very end of `view-mode-exit'.
>  >
>  > Even better, perhaps, would be for view-mode to restore the
>  > frame config after it exits. That way, the frame would return
>  > to its prior state for the buffer that was shown there
>  > previously. That is preferable for two reasons:
>  > (1) no need to explicitly re-fit the buffer and (2) if the
>  > user had manually resized the frame for the prior buffer,
>  > returning to that buffer would not override the user's frame
>  > size preference by fitting it.
>
> `view-mode-hook' is hardly suitable for observing window configuration
> changes.  When `view-mode-hook' is called, the window used for viewing
> might be already there or not exist yet.  `temp-buffer-setup-hook' seems
> more useful here.  `view-mode-hook' could be used, however, to put a
> function on `post-command-hook' which sets `view-exit-action'
> appropriately.  Since `view-exit-action' is called before exiting
> `view-mode' it could call `fit-frame'.

I wasn't suggesting to use `view-mode-hook'. As I noted, that is run only
upon entering the mode. I don't know whether view-mode manages to keep track
of window configs - I thought it did, but that's beside the point here. What
would be needed in this case would be restoring the frame config, not a
window config. _If_ that were feasible.

If the frame cannot be restored, I'm happy to deal with this by fitting the
frame again upon view-mode exit, even though that is less desirable for a
user than putting back the frame parameters s?he had before view-mode.

I don't want to go near `view-exit-action', if I can avoid it. That code is
far too complicated for a mortal such as I. I did think that I could
recuperate the current value of `view-exit-action' and then tack my function
call onto it, but that seems quite ugly. I'd sooner advise `view-mode-exit',
I think (and I don't like to use advice either).

I was looking for a simple and clean way to go, such as a hook.

Does it make sense for Emacs to have a `view-mode-exit-hook'?

What is the recommended approach in a situation such as mine?

  reply	other threads:[~2007-12-18 22:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-18 19:03 view-mode exit hook? Drew Adams
2007-12-18 21:52 ` martin rudalics
2007-12-18 22:47   ` Drew Adams [this message]
2007-12-19  6:39     ` martin rudalics
2007-12-19  7:24       ` Drew Adams
2008-01-06  0:33         ` Drew Adams
  -- strict thread matches above, loose matches on Subject: below --
2008-03-11 19:00 FW: " Drew Adams
2008-08-04 15:03 ` Drew Adams

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=BNELLINCGFJLDJIKDGACGEODCFAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.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.