diff options
| author | Kenichi Handa | 2009-04-16 01:08:24 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2009-04-16 01:08:24 +0000 |
| commit | 89dc9a8ed9dd5b6e1ad71c8a377899876d8a7c40 (patch) | |
| tree | d9072b3a6c825d91cfe76c7e6e10a449d2501c70 | |
| parent | 3c908a57745e4f60f226ee7ccf55062a33854ded (diff) | |
| download | emacs-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.c | 13 |
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) |