From 393c24af3c47a63cf3df313c96147182bd781579 Mon Sep 17 00:00:00 2001 From: speedie Date: Wed, 3 May 2023 21:38:34 +0200 Subject: [PATCH] xft crash workaround, only useful for debian/other distros that run an ancient libxft version --- libs/sl/draw.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/sl/draw.c b/libs/sl/draw.c index 2e79b20..6f35634 100644 --- a/libs/sl/draw.c +++ b/libs/sl/draw.c @@ -340,9 +340,17 @@ drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int XDrawRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w - 1, h - 1); } +int +xerrordummy(Display *dpy, XErrorEvent *ee) +{ + return 0; +} + int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert, Bool markup) { + XSetErrorHandler(xerrordummy); + #if USEPANGO // pango char buf[1024]; int ty; @@ -523,8 +531,12 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp if (d) XftDrawDestroy(d); + XSync(drw->dpy, False); + return x + (render ? w : 0); #endif + + XSync(drw->dpy, False); } void