Mercurial > emacs
changeset 6768:0b61d2b74e64
(frame_update_line_height): New function.
(Fset_face_attribute_internal): Call that.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 09 Apr 1994 06:33:49 +0000 |
parents | 8fbcee1c2059 |
children | 55237bfe01e5 |
files | src/xfaces.c |
diffstat | 1 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xfaces.c Sat Apr 09 06:33:24 1994 +0000 +++ b/src/xfaces.c Sat Apr 09 06:33:49 1994 +0000 @@ -659,6 +659,31 @@ && bounds1->descent == bounds2->descent); */ } +/* Update the line_height of frame F according to the biggest font in + any face, and resize the frame if line_height changes. */ + +void +frame_update_line_height (f) + FRAME_PTR f; +{ + int i; + int biggest = FONT_HEIGHT (f->display.x->font); + + for (i = 0; i < f->display.x->n_param_faces; i++) + if (f->display.x->param_faces[i]->font != (XFontStruct *) FACE_DEFAULT) + { + int height = FONT_HEIGHT (f->display.x->param_faces[i]->font); + if (height > biggest) + biggest = height; + } + + if (biggest == f->display.x->line_height) + return; + + f->display.x->line_height = biggest; + x_set_window_size (f, 0, f->width, f->height); +} + /* Modify face TO by copying from FROM all properties which have nondefault settings. */ static void @@ -967,6 +992,7 @@ if (face->font != f->display.x->font) unload_font (f, face->font); face->font = font; + frame_update_line_height (f); } else if (EQ (attr_name, intern ("foreground"))) {