# HG changeset patch # User YAMAMOTO Mitsuharu # Date 1242034189 0 # Node ID 3b14cedd241f4f48e52b0a08dadfbc89a5f5cd3b # Parent f63bce93c7a1c2041cd54044511cdbe0bb0fdb0a (xftfont_open): Make sure that Xrender extension is added before Xft one (Bug#1696). diff -r f63bce93c7a1 -r 3b14cedd241f src/xftfont.c --- 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);