[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Redisplay issue
From: |
Eli Zaretskii |
Subject: |
Re: Redisplay issue |
Date: |
Mon, 30 Nov 2015 18:16:42 +0200 |
> Date: Sun, 29 Nov 2015 15:35:04 -0800
> From: Yuan MEI <address@hidden>
> Cc: emacs-devel <address@hidden>
>
> 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;
}
- Redisplay issue, Yuan MEI, 2015/11/27
- Re: Redisplay issue, Eli Zaretskii, 2015/11/28
- Re: Redisplay issue, Yuan MEI, 2015/11/28
- Re: Redisplay issue, Eli Zaretskii, 2015/11/28
- Re: Redisplay issue, Yuan MEI, 2015/11/28
- Re: Redisplay issue, Eli Zaretskii, 2015/11/28
- Re: Redisplay issue, Yuan MEI, 2015/11/28
- Re: Redisplay issue, Eli Zaretskii, 2015/11/29
- Re: Redisplay issue, Yuan MEI, 2015/11/29
- Re: Redisplay issue,
Eli Zaretskii <=
- Re: Redisplay issue, Yuan MEI, 2015/11/30
Re: Redisplay issue, joakim, 2015/11/28