all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Drew Adams <drew.adams@oracle.com>
Cc: Bug-Gnu-Emacs <bug-gnu-emacs@gnu.org>
Subject: Re: q doesn't always quit *Help*
Date: Fri, 28 Sep 2007 20:17:05 +0200	[thread overview]
Message-ID: <46FD4521.5010600@gmx.at> (raw)
In-Reply-To: <DNEMKBNJBGPAOPIJOOICAEDDEAAA.drew.adams@oracle.com>

 > My point was that `quit-window' (or equivalent) is correct and sufficient
 > here - for both me and users without non-nil `pop-up-frames'. That behavior
 > is all that is necessary, IMO. I don't see why anyone would (ever) need more
 > than to quit the window.

`quit-window' deletes the frame iff

     (and (or (window-minibuffer-p) (window-dedicated-p window))

holds.  Hence to get rid of the frame `quit-window' is not sufficient in
`view-mode'.

 > FWIW, in my case, `quit-window' is sufficient because I have modified
 > `delete-window' to delete the frame also if `one-window-p'. Beyond the
 > current bug, Emacs does not play well with frames. Fixing this bug should
 > not attempt to fix more than this bug, and the behavior of `quit-window' is
 > enough to fix this bug, IMO. To go beyond this bug, `delete-window' should
 > do what I just described - but that is a different deficiency.

`delete-window' is a primitive function.  I doubt you modified it.  Did
you advise it or do you run a `window-configuration-change-hook'?

 >>`view-mode-exit' has the
 >>following code to cope with stand-alone frames:
 >>
 >>	     ((not (eq frame (next-frame)))
 >>	      ;; Not the only frame, so can safely be removed.
 >>	      (if view-remove-frame-by-deleting
 >>		  (delete-frame frame)
 >>		(setq notlost t)		; Keep the window.
 >>See below.
 >>		(iconify-frame frame))))))
 >
 >
 > I do have `view-remove-frame-by-deleting' = t, yet *Help* was iconified
 > (after your fix). Sorry, I don't have a recipe now.

There is only one single instance of `iconify-frame' in the code of
view-mode, the one cited above.  Hence the only explanation for getting
an iconfied frame is that `view-remove-frame-by-deleting' was nil.

 > In any case, `q' in *Help* does various things (before your fix - I haven't
 > tested enough with the fix) in various contexts - (1) sometimes it does
 > nothing - no feedback, nada - useless; (2) sometimes it deletes the window
 > (& frame) - correct; (3) sometimes it iconifies the frame - awful. I assume
 > this variety is due to the complexity of the View mode code, but I don't
 > pretend to understand the causes. Besides the fact that #3 is awful and #1
 > is useless, it is not good that the behavior is variable.

`q' has to cope with split windows as well as with the single
frame/window case, hence the solution is necessarily more complex.

Anyway (1) should not occur any more.  I fixed that by making
`view-exit-action' bury the buffer in help-mode.  (2) should work if
`pop-up-frames' and `view-remove-frame-by-deleting' are non-nil.  (3)
should happen iff `view-remove-frame-by-deleting' is nil.  If you
observe deviant behavior please tell me.

 > In my ignorance, I think the whole approach of View mode for `q' since Emacs
 > 22 is a mistake - trying to keep track of what series of events set up the
 > current context, to determine the smartest way to "quit".
 >
 > To me, it doesn't make much sense for a function to try to keep track, in a
 > complex way, of how (it thinks) it was called and change its behavior in
 > complex ways accordingly. View mode worked fine in Emacs 20 and 21, IMO, and
 > now it is beyond hope. Call me a pessimist.

The problem is not in view-mode as I explained earlier.  view-mode
hardly changed from Emacs 21 to Emacs 22.  The problem is with the
help-mode interface.





  reply	other threads:[~2007-09-28 18:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <DNEMKBNJBGPAOPIJOOICIECPEAAA.drew.adams@oracle.com>
2007-09-27 21:21 ` q doesn't always quit *Help* martin rudalics
2007-09-27 21:36   ` Drew Adams
2007-09-28  6:35     ` martin rudalics
2007-09-28 14:26       ` Drew Adams
2007-09-28 18:17         ` martin rudalics [this message]
2007-09-28 19:17           ` Drew Adams
2007-09-29  9:05             ` martin rudalics
2007-09-26 18:54 Drew Adams
2007-09-27  9:05 ` 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=46FD4521.5010600@gmx.at \
    --to=rudalics@gmx.at \
    --cc=bug-gnu-emacs@gnu.org \
    --cc=drew.adams@oracle.com \
    /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.