#ifdef HAVE_XNEST_CONFIG_H
#include <xnest-config.h>
#endif
#include <X11/X.h>
#include <X11/Xatom.h>
#include <X11/Xproto.h>
#include "misc.h"
#include "regionstr.h"
#include <X11/fonts/font.h>
#include <X11/fonts/fontstruct.h>
#include "scrnintstr.h"
#include "Xnest.h"
#include "Display.h"
#include "XNFont.h"
int xnestFontPrivateIndex;
Bool
xnestRealizeFont(ScreenPtr pScreen, FontPtr pFont)
{
pointer priv;
Atom name_atom, value_atom;
int nprops;
FontPropPtr props;
int i;
char *name;
FontSetPrivate(pFont, xnestFontPrivateIndex, NULL);
name_atom = MakeAtom("FONT", 4, True);
value_atom = 0L;
nprops = pFont->info.nprops;
props = pFont->info.props;
for (i = 0; i < nprops; i++)
if (props[i].name == name_atom) {
value_atom = props[i].value;
break;
}
if (!value_atom) return False;
name = (char *)NameForAtom(value_atom);
if (!name) return False;
priv = (pointer)xalloc(sizeof(xnestPrivFont));
FontSetPrivate(pFont, xnestFontPrivateIndex, priv);
xnestFontPriv(pFont)->font_struct = XLoadQueryFont(xnestDisplay, name);
if (!xnestFontStruct(pFont)) return False;
return True;
}
Bool
xnestUnrealizeFont(ScreenPtr pScreen, FontPtr pFont)
{
if (xnestFontPriv(pFont)) {
if (xnestFontStruct(pFont))
XFreeFont(xnestDisplay, xnestFontStruct(pFont));
xfree(xnestFontPriv(pFont));
FontSetPrivate(pFont, xnestFontPrivateIndex, NULL);
}
return True;
}