From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#8856: 24.0.50; regression: special-display-frame is no longer dedicated Date: Sun, 19 Jun 2011 20:40:27 +0200 Message-ID: <4DFE429B.4080704@gmx.at> References: <853BDEF1AA9646ACB90724066E1A5951@us.oracle.com><4DF65024.20305@gmx.at><0C191F638279437BADFCC697A5389F9E@us.oracle.com><4DF726A1.7020804@gmx.at><8E7452317D5B4FD183FD24E0FAA14F6F@us.oracle.com><4DFB6BBF.3080504@gmx.at><6FAF5DFD0E094823A512C3E0E87B6DF5@us.oracle.com><4DFE09A7.10500@gmx.at> <0137606B527A48C69E3D6C704C5C6595@us.oracle.com> 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: dough.gmane.org 1308509209 24339 80.91.229.12 (19 Jun 2011 18:46:49 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 19 Jun 2011 18:46:49 +0000 (UTC) Cc: 8856@debbugs.gnu.org To: Drew Adams Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jun 19 20:46:45 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QYN1A-0001pW-WF for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Jun 2011 20:46:45 +0200 Original-Received: from localhost ([::1]:55730 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYN19-0004P9-Fc for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Jun 2011 14:46:43 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:33136) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYMvg-0003b2-PR for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2011 14:41:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QYMvf-0003ML-8C for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2011 14:41:04 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:41408) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYMve-0003ME-Na for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2011 14:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QYMve-0005aZ-3p; Sun, 19 Jun 2011 14:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Jun 2011 18:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8856 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 8856-submit@debbugs.gnu.org id=B8856.130850884421456 (code B ref 8856); Sun, 19 Jun 2011 18:41:02 +0000 Original-Received: (at 8856) by debbugs.gnu.org; 19 Jun 2011 18:40:44 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QYMvK-0005Zz-UD for submit@debbugs.gnu.org; Sun, 19 Jun 2011 14:40:43 -0400 Original-Received: from mailout-de.gmx.net ([213.165.64.23]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1QYMvI-0005Zk-7d for 8856@debbugs.gnu.org; Sun, 19 Jun 2011 14:40:41 -0400 Original-Received: (qmail invoked by alias); 19 Jun 2011 18:40:30 -0000 Original-Received: from 62-47-58-218.adsl.highway.telekom.at (EHLO [62.47.58.218]) [62.47.58.218] by mail.gmx.net (mp033) with SMTP; 19 Jun 2011 20:40:30 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1/b0yQclUnbCwBkluBqxOVKuMLJ24aUS7VJ6IjfSK zt+M8DdHbySqOh User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: <0137606B527A48C69E3D6C704C5C6595@us.oracle.com> X-Y-GMX-Trusted: 0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 19 Jun 2011 14:41:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:47322 Archived-At: > I've pared down the code to load. Just load the attached and then follow the > recipe: > > M-x f TAB ; to display *Completions* frame. > C-] ; to return to top level. > > M-x f TAB o > > Or just hit TAB twice in a row: M-x f TAB TAB. IOW, try to type more > input in minibuffer. > > This then raises the error > "Buffer is read-only #" It does. But it does the same on an old verion of trunk here too. Are you sure that the version of throw-one.el you sent me works with your old Emacs? BTW, in both versions I get the error when I hit c-] already. Anyway, let's see what happens. `display-buffer' should execute this part (while (and specifiers (not (window-live-p window))) ... (setq window ... ((eq method 'fun-with-args) (apply (cadr specifier) buffer (cddr specifier)))))) calling (defun 1on1-display-*Completions*-frame (buf &optional args) "..." (let (return-window) (setq return-window (select-window (funcall special-display-function buf args))) (raise-frame) (redirect-frame-focus (selected-frame) 1on1-minibuffer-frame) return-window)) returning return-window. After that `display-buffer' leaves the loop because return-window is hopefully live and (or (and (window-live-p window) window) returns window (that is your return-window). So I can't imagine that `display-buffer' got anything to do with this. However, I noticed that I have changed `pop-to-buffer'. Does it help if you use the version below? It doesn't help here as I explained above. martin (defun pop-to-buffer (&optional buffer-or-name specifiers norecord label) "..." (interactive "BPop to buffer:\nP") (let ((buffer (normalize-buffer-to-display buffer-or-name)) (old-window (selected-window)) (old-frame (selected-frame)) new-window new-frame) (set-buffer buffer) (setq new-window (display-buffer buffer specifiers label)) (unless (eq new-window old-window) ;; `display-buffer' has chosen another window, select it. (select-window new-window norecord) (setq new-frame (window-frame new-window)) (unless (eq new-frame old-frame) ;; `display-buffer' has chosen another frame, make sure it gets ;; input focus and is risen. (select-frame-set-input-focus new-frame))) buffer))