changeset 103199:3b14cedd241f

(xftfont_open): Make sure that Xrender extension is added before Xft one (Bug#1696).
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Mon, 11 May 2009 09:29:49 +0000
parents f63bce93c7a1
children 1bf70050c13e
files src/xftfont.c
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/xftfont.c	Mon May 11 06:42:45 2009 +0000
+++ b/src/xftfont.c	Mon May 11 09:29:49 2009 +0000
@@ -274,6 +274,16 @@
 
 
   BLOCK_INPUT;
+  /* Make sure that the Xrender extension is added before the Xft one.
+     Otherwise, the close-display hook set by Xft is called after the
+     one for Xrender, and the former tries to re-add the latter.  This
+     results in inconsistency of internal states and leads to X
+     protocol error when one reconnects to the same X server.
+     (Bug#1696)  */
+  {
+    int event_base, error_base;
+    XRenderQueryExtension (display, &event_base, &error_base);
+  }
   match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result);
   FcPatternDestroy (pat);
   xftfont = XftFontOpenPattern (display, match);