Subject: Re: FVWM: Option overload help!

From: Neil Bird <[email-masked]>
Date: Fri, 03 Sep 1999 12:21:53 +0100

Neil Bird wrote:
>   Basically, I've set up my fvwm such that all windows come up with
> title-bars, unless I explicitly apply a NoTitle style.

  So far, I think I've traced this to: if I'm using OLDecor, then /yes/
fvwm (decorations.c) processes these correctly, and removes the window
header for an OL-hinted window.

  But my window has no MWM hints, and the code seems to default to MWM_ALL
- this then doesn't get changed, and it seems to see this later on and
assert all of MWM's hints (max/min/etc.) which induces a window header.

  Am I right? Can someone see a fix?

-- 
=====================- http://www.racaldefence.com/ -===================
 Neil Bird                   |   This is who we are     The time is near
                             |
 mailto:[email-masked] |        There are 120 days remaining
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Neil Bird <[email-masked]>
Date: Fri, 03 Sep 1999 14:31:27 +0100

> header for an OL-hinted window.

  I think now that the problem is this: decorations.c's SelectDecor() sets
t->functions according to OLDecor prefs., but not 'decor'. It's 'decor'
that determines whether one gets a header, and this hasn't had the MWM
flags (that are equivalent to the OL ones) reset accordingly, so that
effectively OL hints are ignored in the decor.

  I'm going to /try/ to figure out a change, but I wouldn't hold your
breath - if anyone else understands this code more than I ...

---

From: Tim Phipps <[email-masked]>
Date: Fri, 03 Sep 1999 14:43:04 +0100

> breath - if anyone else understands this code more than I ...

I don't understand this but this section in decorations.c looks like it
is missing out on clearing the MWM_TITLE flag:

  /* Now I have the un-altered decor and functions, but with the
   * ALL attribute cleared and interpreted. I need to modify the
   * decorations that are affected by the functions */
  if(!(t->functions & MWM_FUNC_RESIZE))
    decor &= ~MWM_DECOR_RESIZEH;
  /* MWM_FUNC_MOVE has no impact on decorations. */
  if(!(t->functions & MWM_FUNC_MINIMIZE))
    decor &= ~MWM_DECOR_MINIMIZE;
  if(!(t->functions & MWM_FUNC_MAXIMIZE))
    decor &= ~MWM_DECOR_MAXIMIZE;
  /* MWM_FUNC_CLOSE has no impact on decorations. */

  /* This rule is implicit, but its easier to deal with if
   * I take care of it now */
  if(decor & (MWM_DECOR_MENU| MWM_DECOR_MINIMIZE | MWM_DECOR_MAXIMIZE))
    decor |= MWM_DECOR_TITLE;

Maybe all it takes is to add:

  if(!(t->functions & MWM_DECOR_TITLE))
    decor &= ~MWM_DECOR_TITLE;

between the two blocks.

Cheers,
Tim.