From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Re: view-mode exit hook? Date: Tue, 18 Dec 2007 22:52:03 +0100 Message-ID: <47684103.4000400@gmx.at> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1198014784 20864 80.91.229.12 (18 Dec 2007 21:53:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 18 Dec 2007 21:53:04 +0000 (UTC) Cc: Emacs-Devel To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Dec 18 22:53:15 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1J4kNG-0000Wc-A9 for ged-emacs-devel@m.gmane.org; Tue, 18 Dec 2007 22:53:14 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J4kMx-0000G8-6X for ged-emacs-devel@m.gmane.org; Tue, 18 Dec 2007 16:52:55 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J4kMs-0000BT-31 for emacs-devel@gnu.org; Tue, 18 Dec 2007 16:52:50 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J4kMr-0000A9-FE for emacs-devel@gnu.org; Tue, 18 Dec 2007 16:52:49 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J4kMr-00009x-Cf for emacs-devel@gnu.org; Tue, 18 Dec 2007 16:52:49 -0500 Original-Received: from mail.gmx.net ([213.165.64.20]) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1J4kMr-0004z9-00 for emacs-devel@gnu.org; Tue, 18 Dec 2007 16:52:49 -0500 Original-Received: (qmail invoked by alias); 18 Dec 2007 21:52:46 -0000 Original-Received: from N798P009.adsl.highway.telekom.at (EHLO [62.47.43.169]) [62.47.43.169] by mail.gmx.net (mp012) with SMTP; 18 Dec 2007 22:52:46 +0100 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX18Owz8tZQUOh6Qf4adNuEyuWyl1WXBLGT3Zjm2i8a j/TBi22J/cR4nd User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: de-DE, de, en-us, en In-Reply-To: X-Y-GMX-Trusted: 0 X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:85264 Archived-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'.