Subject: RE: bug#8856: 24.0.50;regression: `special-display-frame' broken

From: "Drew Adams" <[email-masked]>
Date: Sun, 19 Jun 2011 07:31:23 -0700

>  > The recipe, one more time:
>  >
>  > runemacs.exe -Q --debug-init -l "hexrgb.el" -l 
>  > "oneonone.el" -f "1on1-emacs"
>  >
>  > Download the two files mentioned from here:
>  > 
>  >
http://www.emacswiki.org/cgi-bin/wiki?action=index;match=%5C.(el%7Ctar)(%5C.gz)%
3F%24
> 
> I'm not going to do that.  If you can provide me a self-contained test
> that doesn't require to download any files I shall follow 
> your advices.

I see.  You introduce a regression but won't click a link.

OK, in that case see attached.  These are the same two files for the recipes of
the other regressions reported.  They are not large, and they are all you need -
the recipe is a self-contained test.

> But I have done the check below.
> 
> When I add the name of a buffer *text*
> to `special-display-buffer-names'

Please follow the recipe.  As you know, buffer *Completions* is not just any
buffer - it is not *text*.  It is closely connected with the minibuffer.  And in
this case the minibuffer is in a standalone frame.  And frame focus for the
*Completions* frame is redirected to the minibuffer frame.

I have explained all of that, and it is all in the recipe code that you can
test.
  
> I have three choices - a plain string, an alist of parameter value
> pairs, or a function with arguments.  These give the three cases below
> when evaluating (display-buffer (get-buffer-create "*text*")):

Why invent?  I gave you exactly which of the three choices is used.  If you
simply look at the code or load it and use `C-h v special-display-buffer-names'
you'll see it:

Value: (("*Completions*" 1on1-display-*Completions*-frame
  ((background-color . "LavenderBlush2")
   (mouse-color . "VioletRed")
   (cursor-color . "VioletRed")
   (menu-bar-lines . 0)
   (tool-bar-lines . 0)
   (width . 100)))
 ("*Help*" 1on1-display-*Help*-frame
  ((background-color . "Thistle")
   (mouse-color . "Blue Violet")
   (cursor-color . "Blue Violet")
   (height . 40))))

> (3) special-display-buffer-names -->  (("*text*" ignore (3 4)))
>      calls `special-display-popup-frame' with the argument
> 
>      (ignore (3 4))
> 
> All three cases give the same results here for `display-buffer' before
> and after my changes.  If you see the same values, the handling of
> special buffers is not affected by the changes.  If you see a 
> different behavior, please tell me what you see.

See above.  *Completions* is not *text*.  *Completions* is tied to the
minibuffer.  The minibuffer is in a standalone frame.  The *Completions* frame
focus is redirected to the minibuffer frame.

Please try the simple (3-4 lines) recipe, using the attached code.  That's the
first step: reproduce the problem.

Then we can try to dig down to its kernel and find a solution.  You haven't even
taken the 1-2 minutes needed to see if you can reproduce it on your system.