From xemacs-m  Thu Jan  2 05:35:06 1997
Received: from lemcbed.lem.uni-karlsruhe.de (lemcbed.lem.uni-karlsruhe.de [129.13.103.197])
          by xemacs.cs.uiuc.edu (8.8.4/8.8.4) with SMTP
	  id FAA02834 for <xemacs-beta@xemacs.org>; Thu, 2 Jan 1997 05:35:05 -0600 (CST)
Received: by lemcbed.lem.uni-karlsruhe.de; id AA19885; Thu, 2 Jan 1997 12:36:40 +0100
To: xemacs-beta@xemacs.org
Subject: Suggestion and general remarks regarding faces.
X-Face: Z[@OB)("ZvE?ev~1b+b!0ZUB.$%rh.9qE>dVf>q}Q/V?%d`J3gd!LR\aAZ8<Hwi]xTA(:*c;i3,?K?+rCy*^b$)a,}E?eo},}x2]5LlJysyoUOK"o[>K)'\Ulb7y-7*.If^;rHl['oa)n_M7E6w+LDKMs"G8_`c)uOS1^}.1|8Ill]7X68X-paeUOpBhz<F`B0?~^2Et~GYfw~/0]H]nx4~C_E/_mp#^7Ixc:
Reply-To: jens@lemcbed.lem.uni-karlsruhe.de
Mime-Version: 1.0 (generated by tm-edit 7.94)
Content-Type: text/plain; charset=US-ASCII
From: Jens Lautenbacher <jens@lemcbed.lem.uni-karlsruhe.de>
Date: 02 Jan 1997 12:36:39 +0100
Message-Id: <x2ohf8qpfc.fsf@lemcbed.lem.uni-karlsruhe.de>
Lines: 66
X-Mailer: Red Gnus v0.76/XEmacs 19.14


Hi all,

I hope this suggestion is not too late for 19.15... But which
suggestion does he talk about, I hear you say; well hear it is:

I suggest to remove the 'edit-faces' menu entry from options unless it
is a little less buggy than it is now. Additionally I suggest a
variable which controls if save options should save faces or not. This
var should be nil by default. The new custom.el should be used to edit
faces and save the edited values instead.

*The Reasons*:

* Edit faces is not able to edit faces the way it is needed. Besides
  some interface quirks like buggy cursor movement whith which one
  could learn to live it also has some vital deficiency in editing
  faces. This becomes clear if one remembers that most of the used
  faces have no complete specification but inherit their values from
  some parent faces, usually from default or from some face lying
  behind them in the display order. This is vital for faces like
  'zmacs-region as it should _not_ change the underlying font,
  foreground, underlining ... but just the background color. Many
  other faces need to behave similar.

  To cope with this requirement, edit-faces would need to have the
  possibility to explicitely unset a property on a face. This ability
  is not there. Furthermore, if one edits a face just in one single
  parameter with other parameters not set before, these faces become
  "complete" after they are edited with edit face and 'save options'
  will save them with their complete definition.

* customize-face  from (newer) custom.el does cope with this situation
  in a very friendly manner. One has the possiblity to explicitly set
  which option (family; bold; italic; fore-, background; size;
  underlining;...) should at all be _definied_ and which should be
  left _undefined_ 
 
  There are also some quirks in customize-face, but these are much
  deeper inside the face code and much harder to handle. E.g. from the
  GUI it seems to be possible to set the boldness of a font without
  any 'family property. Of course this does not work. A face is
  represented internally by a structure which has a 'font
  property. This property codes with a standart X11 font definition
  the family, the boldness, the "italicness" and the size of a
  face. So with the current faces it is impossible to just use the
  'italic tag on a face without defining bold, size or family.

  This non-orthogonality can only be solved by using some
  "font-server" which creates faces on the fly by examining the
  extents under the newly inserted text. Also one would have to give
  up the direct handling of faes and would make all visual stuff with
  the help of these fontserver commands. I tried something like that
  some time ago, and though it worked it was that damn slow that I
  gave up on it. 

* the reason for not saving faces with "save options" is simply that
  one can do this better and more selectively with
  customize-faces. Saving all faces also means to save a lot of
  garbage only temporarily created by customize-faces :-)


Thank you for your time,

      Jens

