From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>, michael_heerdegen@web.de
Cc: 34179@debbugs.gnu.org
Subject: bug#34179: 27.0.50; message hangs when buffer with process visible
Date: Fri, 25 Jan 2019 10:44:54 +0100 [thread overview]
Message-ID: <5C4ADA96.4010400@gmx.at> (raw)
In-Reply-To: <83bm457s49.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 2085 bytes --]
>> Here's the Lisp backtrace:
>>
>> "select-window" (0x82a508)
>> "window-max-chars-per-line" (0x82aae0)
>> "window-adjust-process-window-size" (0x82b0a0)
>> "window-adjust-process-window-size-smallest" (0x82b618)
>> "window--adjust-process-windows" (0x82bbc0)
>> "redisplay_internal (C function)" (0x0)
>> "message" (0x82cdb0)
>> "progn" (0x82cff8)
>> "if" (0x82d198)
>> "let*" (0x82d3c8)
>> "catch" (0x82d608)
>> "fracy-display-frame-list" (0x82d7c0)
>> "if" (0x82dac8)
>> "fracy-flash-window" (0x82dc80)
>> "let" (0x82e018)
>> "ad-Advice-handle-switch-frame" (0x82e4a0)
>> "apply" (0x82e498)
>> "handle-switch-frame" (0x82ebe0)
>> "funcall-interactively" (0x82ebd8)
>> "call-interactively" (0x82f030)
>> "command-execute" (0x82f628)
>>
>> The C portion of the backtrace below selec t-window is this:
>>
>> #0 redisplay_other_windows () at xdisp.c:597
>> #1 0x010aa09e in select_window (window=XIL(0xa000000006919aa0),
>> norecord=XIL(0x3d36a14), inhibit_point_swap=false) at window.c:540
>> #2 0x010aa62a in Fselect_window (window=XIL(0xa000000006919aa0),
>> norecord=XIL(0x3d36a14)) at window.c:628
>
> To clarify: these backtraces show where windows_or_buffers_changed is
> being set to the value of 2, which causes us to retry redisplay. It
> is a direct consequence of the fact that window-max-chars-per-line
> calls select-window.
If I replace the line
(with-selected-window (window-normalize-window window t)
of 'window-max-chars-per-line' by the line
(with-current-buffer (window-buffer window)
the problem persists. So it is not the 'select-window' call per se
that causes the trouble. The problem is with having that separate
frame that gets its echo area resized. I'm not sure what causes it
but I suppose it's 'window-configuration-change-hook' itself that
selects that frame for running the hook.
Using 'window-size-change-functions' (patch attached) instead of
'window-configuration-change-hook' fixes the problem here.
martin
[-- Attachment #2: window--adjust-process-windows.diff --]
[-- Type: text/plain, Size: 784 bytes --]
diff --git a/lisp/window.el b/lisp/window.el
index e806677..3a7f7dc 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -9610,7 +9610,7 @@ window--process-window-list
1 t))
process-windows))
-(defun window--adjust-process-windows ()
+(defun window--adjust-process-windows (_frame_or_window)
"Update process window sizes to match the current window configuration."
(when (fboundp 'process-list)
(dolist (procwin (window--process-window-list))
@@ -9624,7 +9624,7 @@ window--adjust-process-windows
(when size
(set-process-window-size process (cdr size) (car size))))))))))
-(add-hook 'window-configuration-change-hook 'window--adjust-process-windows)
+(add-hook 'window-size-change-functions 'window--adjust-process-windows)
next prev parent reply other threads:[~2019-01-25 9:44 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-23 15:10 bug#34179: 27.0.50; message hangs when buffer with process visible Michael Heerdegen
2019-01-23 16:29 ` Eli Zaretskii
2019-01-24 13:19 ` Michael Heerdegen
2019-01-24 13:35 ` Michael Heerdegen
2019-01-24 14:39 ` Eli Zaretskii
2019-01-24 14:58 ` Michael Heerdegen
2019-01-24 15:04 ` Michael Heerdegen
2019-01-24 15:25 ` Michael Heerdegen
2019-01-24 15:36 ` Michael Heerdegen
2019-01-24 16:05 ` martin rudalics
2019-01-24 18:22 ` Michael Heerdegen
2019-01-24 18:33 ` martin rudalics
2019-01-24 18:36 ` Eli Zaretskii
2019-01-24 18:51 ` martin rudalics
2019-01-24 18:59 ` Eli Zaretskii
2019-01-24 19:20 ` Michael Heerdegen
2019-01-24 18:55 ` Michael Heerdegen
2019-01-24 18:47 ` Michael Heerdegen
2019-01-24 19:21 ` Eli Zaretskii
2019-01-24 19:49 ` Eli Zaretskii
2019-01-25 9:44 ` martin rudalics [this message]
2019-01-25 10:15 ` Eli Zaretskii
2019-01-25 10:36 ` martin rudalics
2019-01-25 13:32 ` Eli Zaretskii
2019-01-25 16:51 ` martin rudalics
2019-01-25 17:22 ` martin rudalics
2019-01-26 12:58 ` Michael Heerdegen
2019-01-26 15:09 ` martin rudalics
2019-01-26 18:48 ` martin rudalics
2019-01-27 14:22 ` Michael Heerdegen
2019-01-28 18:38 ` martin rudalics
2019-01-30 22:29 ` Michael Heerdegen
2019-01-31 8:32 ` martin rudalics
2019-01-31 14:06 ` Eli Zaretskii
2019-01-31 18:44 ` martin rudalics
2019-01-31 20:10 ` Eli Zaretskii
2019-02-01 9:04 ` martin rudalics
2019-01-31 14:44 ` Michael Heerdegen
2019-02-02 9:28 ` martin rudalics
2019-02-04 23:35 ` Michael Heerdegen
2019-02-19 8:39 ` martin rudalics
2019-01-25 18:31 ` Eli Zaretskii
2019-01-25 18:54 ` martin rudalics
2019-01-25 19:48 ` Eli Zaretskii
2019-01-24 15:46 ` martin rudalics
2019-01-24 14:32 ` Eli Zaretskii
2019-01-24 14:41 ` Michael Heerdegen
2019-01-24 14:49 ` Michael Heerdegen
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=5C4ADA96.4010400@gmx.at \
--to=rudalics@gmx.at \
--cc=34179@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=michael_heerdegen@web.de \
/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.