Subject: bug#8856: 24.0.50; regression: special-display-frame is no longer dedicated

From: martin rudalics <[email-masked]>
Date: Sat, 25 Jun 2011 16:15:23 +0200

> These are the Icicles files, and the place to get them:
 > http://www.emacswiki.org/cgi-bin/wiki?action=index;match=%5C.(el%7Ctar)(%5C.gz)%
 > 3F%24
 >
 > icicles-mac.el
 > icicles-face.el
 > icicles-opt.el
 > icicles-var.el
 > icicles-fn.el
 > icicles-mcmd.el
 > icicles-cmd1.el
 > icicles-cmd2.el
 > icicles-mode.el
 > icicles.el

It's a pain to get ten files from there one by one.  Can't you pack them
and send them in an attachment together with the throw-... file?  I
suppose you have them in one and the same directory and a thing like
7-zip around.  So this should be much easier for you ...

 > (let ((comp-buf  (get-buffer-create "*Completions*")))
 >   (unless (get-buffer-window comp-buf 'visible)
 >     (save-selected-window
 >       (display-buffer comp-buf t 0) ; <== the problem, no doubt
 >       (deactivate-mark))))

Could you explain what you think that happens, happens instead, or does
not happen here?  "0" won't do anything `display-buffer' without that
argument would not have done anyway: Search all visible and iconified
frames for a window showing comp-buf.  Maybe there are reasons why this
argument is needed and I should put back its semantics but I never found
one and don't find one here.

IIUC the code tests whether it finds a visible window showing comp-buf.
If it doesn't, either because the window doesn't exist or is not
visible, it tries to get one on an iconified frame or make a new frame
and deactivate the mark there.  So you probably raise the frame of
com-buf and then want to redirect focus from the comp-buf window to your
minibuffer window which probably was selected here, and finally you
reselect the minibuffer window because of the `save-selected-window'.
But for some reason the comp-buf window remains selected.  Is it that
what you see?

Note: In all examples you sent me before you didn't have a thing like
`save-selected-window' around a `display-buffer' call.

martin