Subject: bug#61667: 29.0.60; Failure to redisplay

From: Po Lu <[email-masked]>
Date: Thu, 23 Feb 2023 17:41:59 +0800

Eli Zaretskii <[email-masked]> writes:

> Something related to GTK or Glib threads, perhaps?  Or some change in
> XDBE?

That shouldn't happen: we make the relevant X requests directly, and the
DBE implementation in the X.Org server dates back to the sample server
implementation, which has not changed since the late 90s.

> Anyway, if this was not caused by a change in Emacs, we should
> continue the current course of actions, which is to figure out why the
> display on the glass is not updated.

Yes, please.  Here's another stab:

diff --git a/src/xterm.c b/src/xterm.c
index 5feaa4aef0f..cf093aa6381 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7463,6 +7463,8 @@ x_flip_and_flush (struct frame *f)
       && !FRAME_TOOLTIP_P (f))
     return;
 
+  return;
+
   block_input ();
 #ifdef HAVE_XDBE
   if (FRAME_X_NEED_BUFFER_FLIP (f))
@@ -7518,9 +7520,7 @@ XTframe_up_to_date (struct frame *f)
   FRAME_MOUSE_UPDATE (f);
 
 #ifdef HAVE_XDBE
-  if (!buffer_flipping_blocked_p ()
-      && FRAME_X_NEED_BUFFER_FLIP (f))
-    show_back_buffer (f);
+  show_back_buffer (f);
 
   /* The frame is now complete, as its contents have been drawn.  */
   FRAME_X_COMPLETE_P (f) = true;

Please tell whether or not this makes the problem go away.