aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2009-04-16 01:08:24 +0000
committerKenichi Handa2009-04-16 01:08:24 +0000
commit89dc9a8ed9dd5b6e1ad71c8a377899876d8a7c40 (patch)
treed9072b3a6c825d91cfe76c7e6e10a449d2501c70
parent3c908a57745e4f60f226ee7ccf55062a33854ded (diff)
downloademacs-89dc9a8ed9dd5b6e1ad71c8a377899876d8a7c40.tar.gz
emacs-89dc9a8ed9dd5b6e1ad71c8a377899876d8a7c40.zip
(merge_face_vectors): Reflect font properties in
to[LFACE_FONT_INDEX] to the other face attributes. Don't call font_clear_prop if a face attribute doesn't change.
-rw-r--r--src/xfaces.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/xfaces.c b/src/xfaces.c
index a4a7077e57b..62d2cf22196 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -2449,6 +2449,16 @@ merge_face_vectors (f, from, to, named_merge_points)
2449 to[i] = Fmerge_font_spec (from[i], to[i]); 2449 to[i] = Fmerge_font_spec (from[i], to[i]);
2450 else 2450 else
2451 to[i] = Fcopy_font_spec (from[i]); 2451 to[i] = Fcopy_font_spec (from[i]);
2452 if (! NILP (AREF (to[i], FONT_FOUNDRY_INDEX)))
2453 to[LFACE_FOUNDRY_INDEX] = SYMBOL_NAME (AREF (to[i], FONT_FOUNDRY_INDEX));
2454 if (! NILP (AREF (to[i], FONT_FAMILY_INDEX)))
2455 to[LFACE_FAMILY_INDEX] = SYMBOL_NAME (AREF (to[i], FONT_FAMILY_INDEX));
2456 if (! NILP (AREF (to[i], FONT_WEIGHT_INDEX)))
2457 to[LFACE_WEIGHT_INDEX] = FONT_WEIGHT_FOR_FACE (to[i]);
2458 if (! NILP (AREF (to[i], FONT_SLANT_INDEX)))
2459 to[LFACE_SLANT_INDEX] = FONT_SLANT_FOR_FACE (to[i]);
2460 if (! NILP (AREF (to[i], FONT_WIDTH_INDEX)))
2461 to[LFACE_SWIDTH_INDEX] = FONT_WIDTH_FOR_FACE (to[i]);
2452 ASET (to[i], FONT_SIZE_INDEX, Qnil); 2462 ASET (to[i], FONT_SIZE_INDEX, Qnil);
2453 } 2463 }
2454 2464
@@ -2460,7 +2470,8 @@ merge_face_vectors (f, from, to, named_merge_points)
2460 to[i] = merge_face_heights (from[i], to[i], to[i]); 2470 to[i] = merge_face_heights (from[i], to[i], to[i]);
2461 font_clear_prop (to, FONT_SIZE_INDEX); 2471 font_clear_prop (to, FONT_SIZE_INDEX);
2462 } 2472 }
2463 else if (i != LFACE_FONT_INDEX) 2473 else if (i != LFACE_FONT_INDEX
2474 && ! EQ (to[i], from[i]))
2464 { 2475 {
2465 to[i] = from[i]; 2476 to[i] = from[i];
2466 if (i >= LFACE_FAMILY_INDEX && i <=LFACE_SLANT_INDEX) 2477 if (i >= LFACE_FAMILY_INDEX && i <=LFACE_SLANT_INDEX)