calling Ffind_face. */
Lisp_Object Vdefault_face, Vmodeline_face, Vgui_element_face;
Lisp_Object Vleft_margin_face, Vright_margin_face, Vtext_cursor_face;
-Lisp_Object Vpointer_face, Vvertical_divider_face, Vtoolbar_face;
+Lisp_Object Vpointer_face, Vvertical_divider_face, Vtoolbar_face, Vwidget_face;
/* Qdefault, Qhighlight defined in general.c */
Lisp_Object Qmodeline, Qgui_element, Qleft_margin, Qright_margin, Qtext_cursor;
DEFINE_LRECORD_IMPLEMENTATION_WITH_PROPS ("face", face,
mark_face, print_face, 0, face_equal,
- face_hash, face_getprop,
+ face_hash, 0, face_getprop,
face_putprop, face_remprop,
face_plist, struct Lisp_Face);
\f
allocate_face (void)
{
struct Lisp_Face *result =
- alloc_lcrecord_type (struct Lisp_Face, lrecord_face);
+ alloc_lcrecord_type (struct Lisp_Face, &lrecord_face);
reset_face (result);
return result;
void
ensure_face_cachel_complete (struct face_cachel *cachel,
- Lisp_Object domain, unsigned char *charsets)
+ Lisp_Object domain, Charset_ID *charsets)
{
int i;
void
face_cachel_charset_font_metric_info (struct face_cachel *cachel,
- unsigned char *charsets,
+ Charset_ID *charsets,
struct font_metric_info *fm)
{
int i;
void
syms_of_faces (void)
{
- /* Qdefault defined in general.c */
+ /* Qdefault & Qwidget defined in general.c */
defsymbol (&Qmodeline, "modeline");
defsymbol (&Qgui_element, "gui-element");
defsymbol (&Qleft_margin, "left-margin");
Vdefault_face = Qnil;
staticpro (&Vgui_element_face);
Vgui_element_face = Qnil;
+ staticpro (&Vwidget_face);
+ Vwidget_face = Qnil;
staticpro (&Vmodeline_face);
Vmodeline_face = Qnil;
staticpro (&Vtoolbar_face);
syms[n++] = Qblinking;
syms[n++] = Qreverse;
- Vbuilt_in_face_specifiers = pure_list (n, syms);
+ Vbuilt_in_face_specifiers = Flist (n, syms);
staticpro (&Vbuilt_in_face_specifiers);
}
}
Fget (Vgui_element_face, Qbackground_pixmap,
Qunbound));
+ /* widget is another gui element */
+ Vwidget_face = Fmake_face (Qwidget,
+ build_string ("widget face"),
+ Qnil);
+ set_specifier_fallback (Fget (Vwidget_face, Qforeground, Qunbound),
+ Fget (Vgui_element_face, Qforeground, Qunbound));
+ set_specifier_fallback (Fget (Vwidget_face, Qbackground, Qunbound),
+ Fget (Vgui_element_face, Qbackground, Qunbound));
+ set_specifier_fallback (Fget (Vwidget_face, Qbackground_pixmap, Qnil),
+ Fget (Vgui_element_face, Qbackground_pixmap,
+ Qunbound));
+
Vleft_margin_face = Fmake_face (Qleft_margin,
build_string ("left margin face"),
Qnil);