Subject: active icon problems revisited

From: Matthias Clasen <[email-masked]>
Date: Mon, 12 Apr 1999 17:20:57 +0200

There was a discussion of active icon issues some time ago.
I have started to look into the problems with xterm +ai
today.

First, I found that the problem of the Icon style option 
overriding a client-supplied active icon is an old one, it happens
with 2.0.46 (the one shipping with RH 5.2) too.

Second, I tried to find out why turning the active icon on/off with
the "Enable Active Icon" menu entry of the main xterm menu (C-M2)
doesn't work even if there is no applicable Icon style option. To be
more precise, the active icon refuses to disappear once it has been
enabled.

I think the problem is a bug in fvwm, not in xterm. If I toggle the
active icon, xev shows a PropertyNotify for WM_HINTS. But I think
(xev doesn't show any details) xterm just resets the IconWindowHint
flag and sets the icon_window to None. Thus when disabling the active
icon, the resulting PropertyNotify has neither the IconPixmapHint
nor the IconWindowHint set, and the following code in 
HandlePropertyNotify will prevent any changes to the icon.

      if((Tmp_win->wmhints->flags & IconPixmapHint)||
         (Tmp_win->wmhints->flags & IconWindowHint))
 
I have a test program for which toggling active icons works, by having
it send a PropertyNotify with IconWindowHint set and icon_window == None.

Tonight I will experiment with the following logic

      if ((new_flags & (IconWindowHint | IconPixmapHint | IconMaskHint)) ||
          (new_flags & (IconWindowHint | IconPixmapHint | IconMaskHint)	!=
           old_flags & (IconWindowHint | IconPixmapHint | IconMaskHint)))

where {old,new}_flags are the flags of the {old,new} wmhints.

Matthias
  
-- 
Matthias Clasen, 
Tel. 0761/203-5606
Email: [email-masked]
Mathematisches Institut, Albert-Ludwigs-Universitaet Freiburg
--
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]