diff options
Diffstat (limited to 'src/xftfont.c')
| -rw-r--r-- | src/xftfont.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/xftfont.c b/src/xftfont.c index af0feb9b7e6..4a1b488bcf9 100644 --- a/src/xftfont.c +++ b/src/xftfont.c | |||
| @@ -274,6 +274,16 @@ xftfont_open (f, entity, pixel_size) | |||
| 274 | 274 | ||
| 275 | 275 | ||
| 276 | BLOCK_INPUT; | 276 | BLOCK_INPUT; |
| 277 | /* Make sure that the Xrender extension is added before the Xft one. | ||
| 278 | Otherwise, the close-display hook set by Xft is called after the | ||
| 279 | one for Xrender, and the former tries to re-add the latter. This | ||
| 280 | results in inconsistency of internal states and leads to X | ||
| 281 | protocol error when one reconnects to the same X server. | ||
| 282 | (Bug#1696) */ | ||
| 283 | { | ||
| 284 | int event_base, error_base; | ||
| 285 | XRenderQueryExtension (display, &event_base, &error_base); | ||
| 286 | } | ||
| 277 | match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result); | 287 | match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result); |
| 278 | FcPatternDestroy (pat); | 288 | FcPatternDestroy (pat); |
| 279 | xftfont = XftFontOpenPattern (display, match); | 289 | xftfont = XftFontOpenPattern (display, match); |