On Wed, 26 Sep 2007, Eeri Kask wrote:

Marc Aurele La France wrote:
On Tue, 18 Sep 2007, Eeri Kask wrote:
So compile with  -DTWM_USE_XFT  -I/usr/include/freetype2  -lXft

Then insert

TitleFont    "sans-9"
MenuFont    "sans-9"
IconFont    "sans-9:bold"
IconManagerFont    "sans-9"
ResizeFont    "sans-10:bold"

If you are a twm user, please test it; what do you think? :-)

I have refit this to our current source.  However, I don't think the
default fonts `twm` uses should be changed as doing so will surprise
many users.  It appears that restoring the previous defaults would only
require additional changes to InitVariables() in twm.c and GetFont() in



Wait, please, don't commit yet!  :-)

In the meanwile I have done some minor cosmetic improvements to the Xft
inclusion and now I am in two days ready to release these (I renamed two
macros, as being no english native speaker these looked stupid in the
first "iteration").  That is, I am in fact right now ready to release
these improvements, but additionally I have done some one-liner
corrections to text spacing everywhere in rendering as well, so that all
menu items, icon captions, iconmanager window label texts and so on look
considerably better spaced.  In the sense, that vertical spacing now
goes proportionally to the font height and not by a fixed amount like
"font height plus 4 pixels" etc. (but 1.2 times font height, and the
like).  It really goes hand in hand with using scalable fonts: one also
has to have scalable spacing as well!  :-)

These improvements are indeed finished too.

Two days I want to spend on completeing a small focus tweak: if and only
if some client window has focus and this client opens a transient window
(like thunderbird password prompt, or some file-open dialogue), then the
mouse should be warped into that window.  I am thinking how to do this
best using as much existing twm code and functionality as possible; and
it also remains to decide if it makes sense to invent a new keyword like
"WarpToTransients" as in vtwm to that purpose, to retain old behaviour
if the user so wishes.

Then I also found a serious bug and fixed a multicolumn iconmanager
geometry problem (in Xorg 1.0.3 twm release):  if mapped and one moves
that iconmanager window then its width gets corrupted during next
"packing".  It was a small thinking error in PackIconManager() in
iconmgr.c while computing "wwidth", it should/could be something like

wwidth = (ip->first ? (ip->first->width > 0 ? ip->first->width :
ip->width/ip->columns) : 150);

These above improvements are unrelated to xft-support in twm though.

So actually I didn't quite understand you what do you mean by preserving
default fonts twm uses?  Currently twm uses "fixed" and "variable" in
twm.c as default fonts if no fonts are specified in .twmrc.   Next, if
some font failed to load, then "fixed" is (unrelated to InitVariables()
in twm.c) tried in util.c as a fallback.  So by the way, the DefaultFont
as initialised in twm.c is actually never used as a fallback, this font
is used only to render infowindow text!  (It should be called InfoFont
instead, but let it be DefaultFont as it is; we have DefaultForeground
and DefaultBackground as colours as well and nobody actually knows for
what purpose: to draw size- and infowindows.)  Much more important is
that one can specify DefaultFont in .twmrc which needs to be fixed (and
already is :-).

I am afraid we need to change "fixed" and "variable" in twm.c if Xft is
included because xft-subsystem crashes (at least mine) if one uses these
in XftFontOpenXlfd(), probably because these names are not
XLFD-compliant. (xft should not crash because of that, but it is xft's
problem, not ours.)  So as long as default font names (or user-specified
font names in .twmrc) are xlfd-conform one can use these as usual, in
that regard nothing has changed.  If I am correct the choice of "fixed"
as a default font is always justified by the fact that this font is
guaranteed present in every X11 installation and so it is a very
reasonable decision.  Concerning xft I believe having read Keith Packard
"sans", "serif" and "mono" should be expected included in every xft
installation, so I chose "sans-10" and "mono-10" as a replacement for
"variable" and "fixed" in twm.c.
This is the story to that decision. :-)


   Eeri Kask

|  Marc Aurele La France           |  work:   1-780-492-9310          |
|  Academic Information and        |  fax:    1-780-492-1729          |
|    Communications Technologies   |  email:  [EMAIL PROTECTED]         |
|  352 General Services Building   +----------------------------------+
|  University of Alberta           |                                  |
|  Edmonton, Alberta               |    Standard disclaimers apply    |
|  T6G 2H1                         |                                  |
|  CANADA                          |                                  |
XFree86 developer and VP.  ATI driver and X server internals.
Devel mailing list

Reply via email to