From: Araki K. <j00...@ip...> - 2002-01-16 14:10:54
|
荒木です:-) Subject: Re: [Mlterm-dev-ja] mlterm anti alias + DynaFont From: Araki Ken <j00...@ip...> Message-ID: <200...@pd...> Date: Wed, 16 Jan 2002 22:17:00 +0900 > ご協力ありがとうございます _o_ > > 仕方ないので、'W' によるコラム幅決定を削除いたします。 とりあえず、DynaFont の場合だけ、'W' によるコラム幅指定を行なわないという 方向で commit したいのですが、commit 前に、一応添付のパッチをテストしていた だけませんでしょうか? 無理いいまして、重ね重ね申し訳ありません _o_ では -- kiken j00...@ip... Index: src/ml_font.c =================================================================== RCS file: /home/ken/cvsroot/mlterm/src/ml_font.c,v retrieving revision 1.94 retrieving revision 1.101 diff -u -r1.94 -r1.101 --- src/ml_font.c 2002/01/15 13:08:47 1.94 +++ src/ml_font.c 2002/01/16 13:46:59 1.101 @@ -377,26 +377,36 @@ u_int fontsize ) { - XftFont * xfont ; - /* * XXX - * DefaultScreen() should not be used , but ... + * + * I don't know why but XftTextExtents() returns full width extents for DynaFont 'W' + * (e.g. fontsize == 12 / w_width == 12) , so "Dynalab" family fonts are excluded. */ - if( ( xfont = XftFontOpen( font->display , DefaultScreen( font->display) , - XFT_FAMILY , XftTypeString , family , - XFT_PIXEL_SIZE , XftTypeDouble , (double)fontsize , - XFT_SPACING , XftTypeInteger , XFT_PROPORTIONAL , 0))) + if( strncasecmp( family , "Dynalab" , K_MIN(7,strlen(family))) != 0) { - u_int w_width ; + XftFont * xfont ; + + /* + * XXX + * DefaultScreen() should not be used , but ... + */ + if( ( xfont = XftFontOpen( font->display , DefaultScreen( font->display) , + XFT_FAMILY , XftTypeString , family , + XFT_PIXEL_SIZE , XftTypeDouble , (double)fontsize , + XFT_ENCODING , XftTypeString , "iso8859-1" , + XFT_SPACING , XftTypeInteger , XFT_PROPORTIONAL , 0))) + { + u_int w_width ; - w_width = xft_calculate_char_width( font->display , xfont , "W" , 1) ; + w_width = xft_calculate_char_width( font->display , xfont , "W" , 1) ; - XftFontClose( font->display , xfont) ; + XftFontClose( font->display , xfont) ; - if( w_width > 0) - { - return w_width ; + if( w_width > 0) + { + return w_width ; + } } } |