emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 1a8b34a503e: Makeshift solution for X server bug


From: Po Lu
Subject: master 1a8b34a503e: Makeshift solution for X server bug
Date: Sun, 17 Mar 2024 21:14:41 -0400 (EDT)

branch: master
commit 1a8b34a503e5af32851c1aac27a3f09e2345673b
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Makeshift solution for X server bug
    
    * src/xterm.c (x_sync_init_fences): Detect errors around
    XSyncCreateFence.  (bug#69762)
---
 src/xterm.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/xterm.c b/src/xterm.c
index c30015ec8f0..b30a2485148 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7292,6 +7292,11 @@ x_sync_init_fences (struct frame *f)
          && dpyinfo->xsync_minor < 1))
     return;
 
+  /* Suppress errors around XSyncCreateFence requests, since its
+     implementations on certain X servers erroneously reject valid
+     drawables, such as the frame's inner window.  (bug#69762) */
+
+  x_catch_errors (dpyinfo->display);
   output->sync_fences[0]
     = XSyncCreateFence (FRAME_X_DISPLAY (f),
                        /* The drawable given below is only used to
@@ -7303,6 +7308,9 @@ x_sync_init_fences (struct frame *f)
     = XSyncCreateFence (FRAME_X_DISPLAY (f),
                        FRAME_X_WINDOW (f),
                        False);
+  if (x_had_errors_p (dpyinfo->display))
+    output->sync_fences[1] = output->sync_fences[0] = None;
+  x_uncatch_errors_after_check ();
 
   XChangeProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
                   dpyinfo->Xatom_net_wm_sync_fences, XA_CARDINAL,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]