From: Eli Zaretskii <eliz@gnu.org>
To: Yuan MEI <yuan.mei.list@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Redisplay issue
Date: Mon, 30 Nov 2015 18:16:42 +0200 [thread overview]
Message-ID: <83h9k3mphx.fsf@gnu.org> (raw)
In-Reply-To: <CANGGyWaWpjxmLFGN1uAohEi0uLEVTK6JGBYz4O3inYq=2efQCg@mail.gmail.com>
> Date: Sun, 29 Nov 2015 15:35:04 -0800
> From: Yuan MEI <yuan.mei.list@gmail.com>
> Cc: emacs-devel <emacs-devel@gnu.org>
>
> This is when redisplay works normally:
>
> >>> right after window exposure
>
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> expose_frame (0, 0, 170, 1026)
> expose_window (1, 1, 168, 1024)
> expose_window (1, 0, 168, 0)
> expose_window (1, 0, 168, 0)
> expose_frame (0, 0, 818, 1026)
> expose_window (1, 17, 816, 992)
> expose_window (1, 1009, 816, 16)
> expose_window (1, 16, 816, 0)
> expose_window (1, 0, 816, 16)
>
> >>> some time pause here, although nothing else (mouse is outside of Emacs, no mouse movement or key press)
>
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
>
> This is when partial redraw happened:
>
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> expose_frame (0, 0, 170, 1026)
> expose_window (1, 1, 168, 1024)
> expose_window (1, 0, 168, 0)
> expose_window (1, 0, 168, 0)
> expose_frame (0, 0, 818, 1026)
> expose_window (1, 17, 816, 992)
> expose_window (1, 1009, 816, 16)
> expose_window (1, 16, 816, 0)
> expose_window (1, 0, 816, 16)
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
>
> >>> I switched to another virtual desktop then came back, redraw remained incorrect but the following showed up in the log
>
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> expose_frame (0, 0, 170, 1026)
> expose_window (1, 1, 168, 1024)
> expose_window (1, 0, 168, 0)
> expose_window (1, 0, 168, 0)
> expose_frame (0, 0, 818, 1026)
> expose_window (1, 17, 816, 992)
> expose_window (1, 1009, 816, 16)
> expose_window (1, 16, 816, 0)
> expose_window (1, 0, 816, 16)
>
> >>> switched out and back again, finding the entire frame showing only the background color, no menu or status bar
>
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
> expose_frame (0, 0, 170, 1026)
> expose_window (1, 1, 168, 1024)
> expose_window (1, 0, 168, 0)
> expose_window (1, 0, 168, 0)
> expose_frame (0, 0, 818, 1026)
> expose_window (1, 17, 816, 992)
> expose_window (1, 1009, 816, 16)
> expose_window (1, 16, 816, 0)
> expose_window (1, 0, 816, 16)
>
> >>> a few seconds of time pause, then a few glyphs showed up in the status bar
>
> redisplay_preserve_echo_area (8)
> redisplay_internal 0
> 0x299e030 ( SPEEDBAR): same window start
> 0x299e030 ( SPEEDBAR): 1
> 0x1383e60 (*GNU Emacs*): same window start
> 0x1383e60 (*GNU Emacs*): 1
> redisplay_preserve_echo_area (9)
> redisplay_internal 0
>
> Any ideas?
The "good" and the "bad" traces are completely identical!
Can you add 2 more traces as in the diffs below, recompile, and repeat
the experiment? I'd like to be sure that the traces are identical
down to the screen line level.
Thanks.
diff --git a/src/xdisp.c b/src/xdisp.c
index 50c5518..1e52d31 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -30580,6 +30580,9 @@ expose_window (struct window *w, XRectangle *fr)
}
row->clip = fr;
+
+ TRACE ((stderr, "expose_line %d: (%d, %d, %d, %d)\n",
+ row->y, r.x, r.y, r.width, r.height));
if (expose_line (w, row, &r))
mouse_face_overwritten_p = true;
row->clip = NULL;
@@ -30607,6 +30610,9 @@ expose_window (struct window *w, XRectangle *fr)
row->enabled_p)
&& row->y < r_bottom)
{
+
+ TRACE ((stderr, "expose_line %d: (%d, %d, %d, %d)\n",
+ row->y, r.x, r.y, r.width, r.height));
if (expose_line (w, row, &r))
mouse_face_overwritten_p = true;
}
next prev parent reply other threads:[~2015-11-30 16:16 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-27 22:31 Redisplay issue Yuan MEI
2015-11-28 8:06 ` Eli Zaretskii
2015-11-28 8:27 ` Yuan MEI
2015-11-28 9:44 ` Eli Zaretskii
2015-11-28 20:19 ` Yuan MEI
2015-11-28 20:49 ` Eli Zaretskii
2015-11-29 2:54 ` Yuan MEI
2015-11-29 15:42 ` Eli Zaretskii
2015-11-29 23:35 ` Yuan MEI
2015-11-30 16:16 ` Eli Zaretskii [this message]
2015-12-01 4:51 ` Yuan MEI
2015-12-01 16:01 ` Eli Zaretskii
2015-12-02 4:35 ` Yuan MEI
2015-12-02 13:57 ` Eli Zaretskii
2015-12-03 4:55 ` Yuan MEI
2015-12-03 7:47 ` Eli Zaretskii
2015-12-03 8:09 ` Yuan MEI
2015-12-03 10:23 ` Eli Zaretskii
2015-12-03 18:16 ` martin rudalics
2015-12-03 21:23 ` Yuan MEI
2015-12-04 8:08 ` martin rudalics
2015-12-04 8:30 ` Yuan MEI
2015-12-04 8:48 ` martin rudalics
2015-12-04 8:54 ` Yuan MEI
2015-12-04 8:56 ` martin rudalics
2015-12-04 9:00 ` Yuan MEI
2015-12-04 9:05 ` martin rudalics
2015-12-04 9:47 ` Eli Zaretskii
2015-12-04 10:21 ` martin rudalics
2015-12-04 11:01 ` Eli Zaretskii
2015-12-04 11:12 ` Eli Zaretskii
2015-12-05 0:25 ` YAMAMOTO Mitsuharu
2015-12-05 9:17 ` Eli Zaretskii
2015-12-06 0:49 ` Yuan MEI
2015-12-07 3:33 ` YAMAMOTO Mitsuharu
2015-12-07 17:19 ` Eli Zaretskii
2015-12-08 4:03 ` YAMAMOTO Mitsuharu
2015-12-11 8:48 ` Eli Zaretskii
2015-11-28 21:44 ` joakim
2015-11-29 0:14 ` Yuan MEI
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=83h9k3mphx.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=yuan.mei.list@gmail.com \
/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).