From: Stephen Berman <stephen.berman@gmx.net>
To: martin rudalics <rudalics@gmx.at>
Cc: Jens Lechtenboerger <lechten@wi.uni-muenster.de>,
Michael Heerdegen <michael_heerdegen@web.de>,
25946@debbugs.gnu.org
Subject: bug#25946: 26.0.50; display-buffer ignores ignores reusable-frames in display-buffer-alist
Date: Tue, 07 Mar 2017 17:51:22 +0100 [thread overview]
Message-ID: <87r32958tx.fsf@rosalinde> (raw)
In-Reply-To: <58BE8134.6000907@gmx.at> (martin rudalics's message of "Tue, 07 Mar 2017 10:45:24 +0100")
On Tue, 07 Mar 2017 10:45:24 +0100 martin rudalics <rudalics@gmx.at> wrote:
>> (TeX-pop-to-buffer old-buffer nil t)) ; <=================
>> (message "No process for this document."))))
>>
>> The second invocation of TeX-pop-to-buffer displays the source buffer;
>> commenting this out appears to give the result the OP wants.(*) So to
>> satisfying both this use case and the one foreseen for this function,
>> the second invocation could be conditioned on a user option.
>
> This indeed confers to the behavior described by Jens. Does the second
> argument "nil" mean to stay on the selected frame?
It's actually passed to pop-to-buffer's ACTION argument, which is hence
nil here. TeX-pop-to-buffer's signature calls it OTHER-WINDOW, which
was pop-to-buffer's second parameter before it was replaced by ACTION
(TeX-pop-to-buffer is just a wrapper around pop-to-buffer for
compatibility with XEmacs.)
> In any case, this order of invocations is asking for trouble when the
> output buffer should appear on a separate frame. The old code worked
> around this problem because of the (unsplittable . t) default entry in
> ‘special-display-frame-alist’. So Jens probably needs something like
>
> (customize-set-variable
> 'display-buffer-alist
> '(("\\*text\\*"
> (display-buffer-reuse-window display-buffer-pop-up-frame)
> (reusable-frames . t))))
>
> (setq display-buffer-mark-dedicated t)
> (setq pop-up-frame-alist (cons '(unsplittable . t) pop-up-frame-alist))
>
> (pop-to-buffer (get-buffer-create "*text*") t)
>
> and we are back in the strong grip of global variables, something the
> "new" implementation of ‘display-buffer’ was supposed to avoid. We
> can't escape our past.
TeX-recenter-output-buffer could be redefined as follows to get the same
result (according to my tests) without resorting to pop-up-frame-alist:
(defun TeX-recenter-output-buffer (line)
"Redisplay buffer of TeX job output so that most recent output can be seen.
The last line of the buffer is displayed on line LINE of the window, or
at bottom if LINE is nil."
(interactive "P")
(let ((buffer (TeX-active-buffer)))
(if buffer
(let* ((old-buffer (current-buffer))
(frame1 (window-frame (get-buffer-window old-buffer)))
frame2)
(TeX-pop-to-buffer buffer t t)
(setq frame2 (window-frame (get-buffer-window buffer)))
(bury-buffer buffer)
(goto-char (point-max))
(recenter (if line
(prefix-numeric-value line)
(/ (window-height) 2)))
(if (eq frame1 frame2)
(TeX-pop-to-buffer old-buffer nil t)
(select-frame-set-input-focus frame1)))
(message "No process for this document."))))
>> (*) I should note that on some tests I made with the second invocation
>> commented out I got strange results: once or twice, the frame in which
>> the LaTeX output is displayed did split, showing the *Messages* buffer
>> below (but with a reduced height); and several times, after killing the
>> output buffer (and hence its frame), keyboard input was totally blocked,
>> though mouse input was possible. I have not been able to reliably
>> reproduce these effects.
>
> This is probably due to
>
> commit 6a788d2fc18c23dcfc5d0352649b2f690e9cbff7
> Author: Noam Postavsky <npostavs@gmail.com>
> Date: Fri Jan 13 19:47:22 2017 -0500
>
> Don't wait for frame to become visible
>
> Can you try to selectively revert that commit and see whether the
> problem persists?
I suppose I could try to revert, but since I can't reliably reproduce
the problems, not seeing them after reverting may not be conclusive.
(For example, so far testing the above redefinition of TeX-pop-to-buffer
has not shown the problems.)
Steve Berman
next prev parent reply other threads:[~2017-03-07 16:51 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-03 10:01 bug#25946: 26.0.50; display-buffer ignores ignores reusable-frames in display-buffer-alist Jens Lechtenboerger
2017-03-03 10:38 ` martin rudalics
2017-03-03 10:58 ` Jens Lechtenboerger
2017-03-03 14:24 ` martin rudalics
2017-03-03 14:49 ` Jens Lechtenboerger
2017-03-03 18:23 ` martin rudalics
2017-03-03 18:55 ` Drew Adams
[not found] ` <13CD49F822DC4A42AF94C24270D9E5CF9A5D4E36@WIWI-MAIL-1.WIWI.UNI-MUENSTER.DE>
2017-03-04 17:08 ` Jens Lechtenboerger
2017-03-04 17:40 ` martin rudalics
2017-03-05 10:34 ` martin rudalics
2017-03-05 11:27 ` Stephen Berman
2017-03-05 13:28 ` martin rudalics
2017-03-05 22:20 ` Michael Heerdegen
2017-03-06 8:11 ` martin rudalics
2017-03-06 8:57 ` Stephen Berman
2017-03-06 9:25 ` Jens Lechtenboerger
2017-03-06 11:07 ` Stephen Berman
2017-03-06 17:46 ` martin rudalics
2017-03-06 20:59 ` Stephen Berman
2017-03-07 9:45 ` martin rudalics
2017-03-07 16:51 ` Stephen Berman [this message]
2017-03-07 19:00 ` martin rudalics
2017-03-07 19:36 ` Stephen Berman
2017-03-10 15:01 ` Jens Lechtenboerger
2017-03-11 10:20 ` martin rudalics
2017-03-06 17:46 ` 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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r32958tx.fsf@rosalinde \
--to=stephen.berman@gmx.net \
--cc=25946@debbugs.gnu.org \
--cc=lechten@wi.uni-muenster.de \
--cc=michael_heerdegen@web.de \
--cc=rudalics@gmx.at \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).