X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffaces.c;h=91d15170790e66f99216377d8ebd31aca5d9f72e;hb=98a6e4055a1fa624c592ac06f79287d55196ca37;hp=d9524570f90fabe4ac2c7d7b93d86281372382d1;hpb=3890a2e3064a7f562107c58e59d928284ec04741;p=chise%2Fxemacs-chise.git.1 diff --git a/src/faces.c b/src/faces.c index d952457..91d1517 100644 --- a/src/faces.c +++ b/src/faces.c @@ -596,7 +596,7 @@ face_property_matching_instance (Lisp_Object face, Lisp_Object property, DEFUN ("facep", Ffacep, 1, 1, 0, /* -Return non-nil if OBJECT is a face. +Return t if OBJECT is a face. */ (object)) { @@ -762,8 +762,8 @@ other non-nil value both permanent and temporary are included. } DEFUN ("make-face", Fmake_face, 1, 3, 0, /* -Define and return a new FACE described by DOC-STRING. -You can modify the font, color, etc of a face with the set-face-* functions. +Define a new face with name NAME (a symbol), described by DOC-STRING. +You can modify the font, color, etc. of a face with the set-face-* functions. If the face already exists, it is unmodified. If TEMPORARY is non-nil, this face will cease to exist if not in use. */ @@ -1575,7 +1575,16 @@ get_extent_fragment_face_cache_index (struct window *w, findex = get_builtin_face_cache_index (w, Vdefault_face); merge_face_cachel_data (w, findex, &cachel); - return get_merged_face_cache_index (w, &cachel); + findex = get_merged_face_cache_index (w, &cachel); + if (cachel.merged_faces && + /* merged_faces did not get stored and available via return value */ + Dynarr_at (w->face_cachels, findex).merged_faces != + cachel.merged_faces) + { + Dynarr_free (cachel.merged_faces); + cachel.merged_faces = 0; + } + return findex; } } @@ -2030,13 +2039,13 @@ complex_vars_of_faces (void) Vwidget_face = Fmake_face (Qwidget, build_string ("widget face"), Qnil); + set_specifier_fallback (Fget (Vwidget_face, Qfont, Qunbound), + Fget (Vgui_element_face, Qfont, Qunbound)); 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)); + /* We don't want widgets to have a default background pixmap. */ Vleft_margin_face = Fmake_face (Qleft_margin, build_string ("left margin face"),