2014-07-19 Kenichi Handa <handa@gnu.org>
* xfaces.c (realize_x_face): Call font_load_for_lface with no mandatory font spec (Bug#17973). 2014-07-19 Stefan Monnier <monnier@iro.umontreal.ca> * font.c (font_score): Return the worst score if the size of ENTITY is wrong by more than a factor 2 (Bug#17973).
This commit is contained in:
parent
31ca1841d2
commit
bf0d3f76dc
3 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
2014-07-19 K. Handa <handa@gnu.org>
|
||||||
|
|
||||||
|
* xfaces.c (realize_x_face): Call font_load_for_lface with no
|
||||||
|
mandatory font spec (Bug#17973).
|
||||||
|
|
||||||
|
2014-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* font.c (font_score): Return the worst score if the size of
|
||||||
|
ENTITY is wrong by more than a factor 2 (Bug#17973).
|
||||||
|
|
||||||
2014-07-18 Dmitry Antipov <dmantipov@yandex.ru>
|
2014-07-18 Dmitry Antipov <dmantipov@yandex.ru>
|
||||||
|
|
||||||
* frame.c (frame_unspecified_color): New function
|
* frame.c (frame_unspecified_color): New function
|
||||||
|
|
|
@ -2158,10 +2158,14 @@ font_score (Lisp_Object entity, Lisp_Object *spec_prop)
|
||||||
lowest bit is set if the DPI is different. */
|
lowest bit is set if the DPI is different. */
|
||||||
EMACS_INT diff;
|
EMACS_INT diff;
|
||||||
EMACS_INT pixel_size = XINT (spec_prop[FONT_SIZE_INDEX]);
|
EMACS_INT pixel_size = XINT (spec_prop[FONT_SIZE_INDEX]);
|
||||||
|
EMACS_INT entity_size = XINT (AREF (entity, FONT_SIZE_INDEX));
|
||||||
|
|
||||||
if (CONSP (Vface_font_rescale_alist))
|
if (CONSP (Vface_font_rescale_alist))
|
||||||
pixel_size *= font_rescale_ratio (entity);
|
pixel_size *= font_rescale_ratio (entity);
|
||||||
diff = eabs (pixel_size - XINT (AREF (entity, FONT_SIZE_INDEX))) << 1;
|
if (pixel_size * 2 < entity_size || entity_size * 2 < pixel_size)
|
||||||
|
/* This size is wrong by more than a factor 2: reject it! */
|
||||||
|
return 0xFFFFFFFF;
|
||||||
|
diff = eabs (pixel_size - entity_size) << 1;
|
||||||
if (! NILP (spec_prop[FONT_DPI_INDEX])
|
if (! NILP (spec_prop[FONT_DPI_INDEX])
|
||||||
&& ! EQ (spec_prop[FONT_DPI_INDEX], AREF (entity, FONT_DPI_INDEX)))
|
&& ! EQ (spec_prop[FONT_DPI_INDEX], AREF (entity, FONT_DPI_INDEX)))
|
||||||
diff |= 1;
|
diff |= 1;
|
||||||
|
|
|
@ -5547,7 +5547,7 @@ realize_x_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE])
|
||||||
}
|
}
|
||||||
if (! FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
|
if (! FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
|
||||||
attrs[LFACE_FONT_INDEX]
|
attrs[LFACE_FONT_INDEX]
|
||||||
= font_load_for_lface (f, attrs, attrs[LFACE_FONT_INDEX]);
|
= font_load_for_lface (f, attrs, Ffont_spec (0, NULL));
|
||||||
if (FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
|
if (FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
|
||||||
{
|
{
|
||||||
face->font = XFONT_OBJECT (attrs[LFACE_FONT_INDEX]);
|
face->font = XFONT_OBJECT (attrs[LFACE_FONT_INDEX]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue