/* xftfont.c -- XFT font driver.
- Copyright (C) 2006 Free Software Foundation, Inc.
- Copyright (C) 2006, 2007
+ Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007, 2008
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H13PRO009
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
static void xftfont_get_colors P_ ((FRAME_PTR, struct face *, GC gc,
struct xftface_info *,
XftColor *fg, XftColor *bg));
-static Font xftfont_default_fid P_ ((FRAME_PTR));
/* Setup foreground and background colors of GC into FG and BG. If
}
}
-/* Return the default Font ID on frame F. The Returned Font ID is
- stored in the GC of the frame F, but the font is never used. So,
- any ID is ok as long as it is valid. */
-
-static Font
-xftfont_default_fid (f)
- FRAME_PTR f;
-{
- static int fid_known;
- static Font fid;
-
- if (! fid_known)
- {
- fid = XLoadFont (FRAME_X_DISPLAY (f), "fixed");
- if (! fid)
- {
- fid = XLoadFont (FRAME_X_DISPLAY (f), "*");
- if (! fid)
- abort ();
- }
- fid_known = 1;
- }
- return fid;
-}
-
static Lisp_Object xftfont_list P_ ((Lisp_Object, Lisp_Object));
static Lisp_Object xftfont_match P_ ((Lisp_Object, Lisp_Object));
font->font.vertical_centering = 0;
/* Setup pseudo XFontStruct */
- xfont->fid = xftfont_default_fid (f);
+ xfont->fid = 0;
xfont->ascent = font->ascent;
xfont->descent = font->descent;
xfont->max_bounds.descent = font->descent;
unsigned code = XftCharIndex (xftfont_info->display, xftfont_info->xftfont,
(FcChar32) c);
- return (code ? code : 0xFFFFFFFF);
+ return (code ? code : FONT_INVALID_CODE);
}
static int
code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8)
| XCHAR2B_BYTE2 (s->char2b + from + i));
- XftDrawGlyphs (xft_draw, &fg, xftfont_info->xftfont,
- x, y, code, len);
+ if (s->padding_p)
+ for (i = 0; i < len; i++)
+ XftDrawGlyphs (xft_draw, &fg, xftfont_info->xftfont,
+ x + i, y, code + i, 1);
+ else
+ XftDrawGlyphs (xft_draw, &fg, xftfont_info->xftfont,
+ x, y, code, len);
UNBLOCK_INPUT;
return len;