Hello,

Let me cite an excerpt of manpage:

> If  the NoIcon attribute is set then the specified window simply
> disappears when it is iconified.  The window  can  be  recovered
> through  the  window-list.   If  Icon is set without an argument
> then the NoIcon attribute is cleared but no icon  is  specified.
> An example which allows only the FvwmPager module icon to exist:
>
> Style * NoIcon
> Style FvwmPager Icon

But with current code in CVS any 'Icon' style clears the 'NoIcon'
attribute. So, here is my patch which makes fvwm behave like described
in manpage.

Best wishes

-- 
Serge Koksharov, Free Software user & supporter
GPG public key ID: 0x3D330896 (pgp.mit.edu)
Key fingerprint: 5BC4 0475 CB03 6A31 0076  82C2 C240 72F0 3D33 0896
diff -Naur fvwmCVS-orig/ChangeLog fvwmCVS-fixed/ChangeLog
--- fvwmCVS-orig/ChangeLog      2006-07-14 02:07:19.000000000 +0400
+++ fvwmCVS-fixed/ChangeLog     2006-07-14 02:09:40.000000000 +0400
@@ -1,3 +1,9 @@
+2006-07-14  Serge Koksharov  <gentoosiast dog yandex dot ru>
+
+       * fvwm/style.c (style_parse_one_style_option):
+       Now 'NoIcon' style can be cleared only with 'Icon' style without an
+       argument list, exactly like described in manpage
+
 2006-07-13  Dominik Vogt  <dominik(dot)vogt(at)gmx(dot)de>
 
        * fvwm/expand.c (expand_args_extended):
diff -Naur fvwmCVS-orig/fvwm/style.c fvwmCVS-fixed/fvwm/style.c
--- fvwmCVS-orig/fvwm/style.c   2006-07-14 02:07:17.000000000 +0400
+++ fvwmCVS-fixed/fvwm/style.c  2006-07-14 02:07:49.000000000 +0400
@@ -2688,9 +2688,11 @@
                        ps->flag_mask.has_icon = 1;
                        ps->change_mask.has_icon = 1;
 
-                       S_SET_IS_ICON_SUPPRESSED(SCF(*ps), 0);
-                       S_SET_IS_ICON_SUPPRESSED(SCM(*ps), 1);
-                       S_SET_IS_ICON_SUPPRESSED(SCC(*ps), 1);
+                       if (!ps->flags.has_icon) {
+                               S_SET_IS_ICON_SUPPRESSED(SCF(*ps), 0);
+                               S_SET_IS_ICON_SUPPRESSED(SCM(*ps), 1);
+                               S_SET_IS_ICON_SUPPRESSED(SCC(*ps), 1);
+                       }
                }
                else if (StrEquals(token, "IconBackgroundColorset"))
                {

Reply via email to