[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 6b1ed2f2c9: Fix antialias face attribute when text is scaled
From: |
Eli Zaretskii |
Subject: |
master 6b1ed2f2c9: Fix antialias face attribute when text is scaled |
Date: |
Sat, 27 Aug 2022 06:15:18 -0400 (EDT) |
branch: master
commit 6b1ed2f2c99a1c2da56c5f434570c438cad6576d
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>
Fix antialias face attribute when text is scaled
This restores the code we had in realize_gui_face before commit bf0d3f7.
The problem described in bug#17973, which led to that commit, only
happens if one uses a specific (misc-fixed) font family, not for
the usual default fonts used by Emacs, and I'm not sure what's
described there is a bug at all. At least for the purposes of
text-scale-adjust, it makes no sense to ignore the
foundry/family/adstyle of the original font, because we _want_ the
same (or very similar) font, just of a different size.
And likely in other use cases: if the :font attribute of a face
specifies some font properties, we want to keep them all, not
arbitrarily to ignore some of them. And definitely catering to an
obscure use case such as the one cited in bug#17973 is NOT a good
reason to make such radical changes in face-realization behavior.
So I think backing out that part of commit bf0d3f7 is TRT, and if
we decide that this causes bug#17973 in too many situations we care
about, I'd rather find a kludge for that specific case than do that
for every face realization.
* src/xfaces.c (realize_gui_face): Preserve face attributes when
text is scaled. This reverts part of the changes installed in
commit bf0d3f7. (Bug#37473)
---
src/xfaces.c | 27 +++------------------------
1 file changed, 3 insertions(+), 24 deletions(-)
diff --git a/src/xfaces.c b/src/xfaces.c
index bbc1d352c6..70d5cbeb4c 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -6012,8 +6012,7 @@ realize_gui_face (struct face_cache *cache, Lisp_Object
attrs[LFACE_VECTOR_SIZE]
#ifdef HAVE_WINDOW_SYSTEM
struct face *default_face;
struct frame *f;
- Lisp_Object stipple, underline, overline, strike_through, box, temp_spec;
- Lisp_Object temp_extra, antialias;
+ Lisp_Object stipple, underline, overline, strike_through, box;
eassert (FRAME_WINDOW_P (cache->f));
@@ -6055,28 +6054,8 @@ realize_gui_face (struct face_cache *cache, Lisp_Object
attrs[LFACE_VECTOR_SIZE]
emacs_abort ();
}
if (! FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
- {
- /* We want attrs to allow overriding most elements in the
- spec (IOW, to start out as an empty font spec), but
- preserve the antialiasing attribute. (bug#17973,
- bug#37473). */
- temp_spec = Ffont_spec (0, NULL);
- temp_extra = AREF (attrs[LFACE_FONT_INDEX],
- FONT_EXTRA_INDEX);
- /* If `:antialias' wasn't specified, keep it unspecified
- instead of changing it to nil. */
-
- if (CONSP (temp_extra))
- antialias = Fassq (QCantialias, temp_extra);
- else
- antialias = Qnil;
-
- if (FONTP (attrs[LFACE_FONT_INDEX]) && !NILP (antialias))
- Ffont_put (temp_spec, QCantialias, Fcdr (antialias));
-
- attrs[LFACE_FONT_INDEX]
- = font_load_for_lface (f, attrs, temp_spec);
- }
+ attrs[LFACE_FONT_INDEX]
+ = font_load_for_lface (f, attrs, attrs[LFACE_FONT_INDEX]);
if (FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
{
face->font = XFONT_OBJECT (attrs[LFACE_FONT_INDEX]);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 6b1ed2f2c9: Fix antialias face attribute when text is scaled,
Eli Zaretskii <=