commit 956b52bb2a2d344fcff5c8c84771781d7b3444c1
parent 3931fe18f45f317ad807b47f8fa5ac6e99487509
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Sun, 23 Apr 2006 20:39:58 +0200
implemented Xutf8DrawString behavior
Diffstat:
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/liblitz/draw.c b/liblitz/draw.c
@@ -102,7 +102,11 @@ xdrawtext(Display *dpy, BlitzDraw *d)
}
XSetBackground(dpy, d->gc, d->color.bg);
XSetForeground(dpy, d->gc, d->color.fg);
+#ifdef X_HAVE_UTF8_STRING
+ Xutf8DrawString(dpy, d->drawable, d->font.set, d->gc, x, y, text, len);
+#else
XDrawString(dpy, d->drawable, d->gc, x, y, text, len);
+#endif
}
void
diff --git a/liblitz/font.c b/liblitz/font.c
@@ -5,20 +5,31 @@
#include <stdio.h>
#include <stdlib.h>
+#include <cext.h>
#include "blitz.h"
void
blitz_loadfont(Display *dpy, BlitzFont *font, char *fontstr)
{
+ char *fontname = fontstr;
+ char **missing = nil, *def = "?";
+ int nmissing;
+ if(font->set)
+ XFreeFontSet(dpy, font->set);
if(font->font)
XFreeFont(dpy, font->font);
- font->font = XLoadQueryFont(dpy, fontstr);
+ font->font = XLoadQueryFont(dpy, fontname);
if (!font->font) {
- font->font = XLoadQueryFont(dpy, "fixed");
+ fontname = "fixed";
+ font->font = XLoadQueryFont(dpy, fontname);
if (!font->font) {
- fprintf(stderr, "%s", "liblitz: error, cannot load fixed font\n");
+ fprintf(stderr, "%s", "liblitz: error, cannot load 'fixed' font\n");
exit(1);
}
}
+ font->set = XCreateFontSet(dpy, fontname, &missing, &nmissing, &def);
+
+ if(missing)
+ XFreeStringList(missing);
}