Subject: FVWM: Would this be possible

From: [email-masked]
Date: Mon, 09 Dec 96 12:14:22 -0800

I'm not too knowledgable about X, but I was wondering if it would be possible 
to in impliment something like Mac's WindowShade. In case you don't know what 
that is, it allows you to click twice on the windows title to collapse the 
window to just it's title row.  

I know that this can be simulated by just Iconifying the windows to their 
title without an icon, but this doesn't keep the windows original width 
information when it's iconified. By this I mean, I like to tell which window 
I'm selecting by the windows width as well as it's title, since sometimes I'm 
working on different windows with the same title but at different widths.  

Plus, I'm sot sure if it's my settings, but when I Iconify a window the icon 
is placed to the right of where the actual window was located, which is 
annoying.

Lee Myers
[email-masked]

--------------------------------------------------------------------------
California is a fine place to live -- if you happen to be an orange.
                -- Fred Allen
--------------------------------------------------------------------------
The above is personal opinion only. Not to be taken as an official statement 
of any organization whatsoever.

--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to [email-masked].
To report problems, send mail to [email-masked].

---

From: Andrew J Cosgriff <[email-masked]>
Date: 10 Dec 1996 11:24:32 +1100

"lmyers" == lmyers  <[email-masked]> writes:

lmyers> I'm not too knowledgable about X, but I was wondering if it
lmyers> would be possible to in impliment something like Mac's
lmyers> WindowShade. In case you don't know what that is, it allows
lmyers> you to click twice on the windows title to collapse the window
lmyers> to just it's title row.

For what it's worth, I noticed AfterStep supports this (not that I
personally have a use for it, but...)

See http://mango.sfasu.edu/~frank/afterstep/

Of course if you're fond of some of fvwm 2's features you may not want
to change, since AfterStep is based on fvwm 1...

Enjoy,
 Andrew
-- 
 - Andrew J. Cosgriff - Network Software Dude, Monash (Clayton) - PGP/MIME Ok -
 [email-masked]  http://www-personal.monash.edu.au/~ajc  +61 3 9905 1165
                          Yow!  Am I having fun yet?
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to [email-masked].
To report problems, send mail to [email-masked].

---

From: Kendrick Vargas <[email-masked]>
Date: Mon, 9 Dec 1996 21:35:13 -0500 (EST)

> window to just it's title row.  

it's possible, afterstep does this.
			-peace

-----BEGIN GEEK CODE BLOCK-----
GAT d- s:+ !a C+(+++) UI/L/S/B++(+++) P>+ L+(++) E---- W+++ N+ o? K?
w++++ O--- M-- V PS+++@ PE Y-- PGP+ t++ 5 X++ R- tv+ b DI++ D+ G e>* 
h*(!) r- y*(+)
------END GEEK CODE BLOCK------
"Life is when you shake it" -- me

---

From: TeeJay <[email-masked]>
Date: Tue, 10 Dec 1996 06:12:41 +0100 (MET)

> window to just it's title row.  

It's possible, but the way I do it is not too nice... :( Back in the days
with Win95 I had a program that did the same and I loved it. It's very
easy to get to see transient windows again. Here's what I have in my
.fvwm2rc:

AddToFunc Move-or-Raise         "M" Raise
+                               "M" Move
+                               "C" Maximize    0 1p
+                               "D" Maximize    100 100

Mouse 1         T       A       Move-or-Raise

Mouse 0         8       A       Maximize 0 1p

Key Tab         A       C       Maximize        0 1p

As you can see I have a function which is singly defined for the titlebar.
The normal "Click" causes a window to Maximize to 1 pixel in height, en
null in width (keeps original width). If I move the cursor while holding
mousebutton 1, I'll move and raise the window, doubleclicking it will
maximize the window.

I also have a button (number 8) which _maximizes_ the window in that way
plus that I've added a keyboard shortcut (Ctrl-Tab).

The disadvantage of doing it this way is that you use the Maximize
function and that a _titlebarred_ window is brought to the top of your
screen (not in layers, but to the pixelrow 0). Anyway, it's a start... :)

Hope this helps...

TeeJay signing off while saying:
                      "Avoid the Gates of Hell.  Use Linux"

---

From: Andrew Veliath <[email-masked]>
Date: Tue, 10 Dec 1996 03:33:04 -0500

ajc> "lmyers" == lmyers <[email-masked]> writes:
    lmyers> I'm not too knowledgable about X, but I was wondering if
    lmyers> it would be possible to in impliment something like Mac's
    lmyers> WindowShade. In case you don't know what that is, it
    lmyers> allows you to click twice on the windows title to collapse
    lmyers> the window to just it's title row.

    ajc> For what it's worth, I noticed AfterStep supports this (not
    ajc> that I personally have a use for it, but...)

    ajc> See http://mango.sfasu.edu/~frank/afterstep/

    ajc> Of course if you're fond of some of fvwm 2's features you may
    ajc> not want to change, since AfterStep is based on fvwm 1...

Here's a "WindowShade" function for fvwm 2.0.43 I worked up with an
added feature of being able to force the window shade up or down with
an argument.

I've not tested it much, so don't expect much :)...

Regards,
Andrew

diff -cr ../orig/fvwm-2.0.43/Fvwm.tmpl fvwm-2.0.43/Fvwm.tmpl
*** ../orig/fvwm-2.0.43/Fvwm.tmpl	Thu Jun 27 10:57:21 1996
--- fvwm-2.0.43/Fvwm.tmpl	Tue Dec 10 02:55:44 1996
***************
*** 164,170 ****
   * 
   ***************************************************************************/
  
! OPTION_DEFINES = -DSHAPE -DPIXMAP_BUTTONS 

--- 164,170 ----
   * 
   ***************************************************************************/
  
! OPTION_DEFINES = -DSHAPE -DPIXMAP_BUTTONS -DWINDOWSHADE 

diff -cr ../orig/fvwm-2.0.43/fvwm/borders.c fvwm-2.0.43/fvwm/borders.c
*** ../orig/fvwm-2.0.43/fvwm/borders.c	Thu Apr 11 11:27:10 1996
--- fvwm-2.0.43/fvwm/borders.c	Tue Dec 10 03:05:35 1996
***************
*** 1060,1066 ****
        }
      }
  
!     if(tmp_win->flags & BORDER)
      {
        tmp_win->corner_width = Scr.TitleHeight + tmp_win->bw + 
          tmp_win->boundary_width ;
--- 1060,1070 ----
        }
      }
  
!     if((tmp_win->flags & BORDER)
! #ifdef WINDOWSHADE
!        && !(tmp_win->buttons & WSHADE)
! #endif
! 	)
      {
        tmp_win->corner_width = Scr.TitleHeight + tmp_win->bw + 
          tmp_win->boundary_width ;
***************
*** 1137,1142 ****
--- 1141,1152 ----
    /* may need to omit the -1 for shaped windows, next two lines*/
    cx = tmp_win->boundary_width-tmp_win->bw;
    cy = tmp_win->title_height + tmp_win->boundary_width-tmp_win->bw;
+ 
+ #ifdef WINDOWSHADE
+   if ((tmp_win->attr.height < tmp_win->hints.height_inc)
+       || (tmp_win->attr.height <= 0))
+       tmp_win->attr.height = tmp_win->hints.height_inc;
+ #endif
  
    XResizeWindow(dpy, tmp_win->w, tmp_win->attr.width,
  		tmp_win->attr.height);
diff -cr ../orig/fvwm-2.0.43/fvwm/builtins.c fvwm-2.0.43/fvwm/builtins.c
*** ../orig/fvwm-2.0.43/fvwm/builtins.c	Thu Jun 27 10:34:19 1996
--- fvwm-2.0.43/fvwm/builtins.c	Tue Dec 10 03:19:42 1996
***************
*** 326,331 ****
--- 326,340 ----
    if (tmp_win->flags & MAXIMIZED)
    {
      tmp_win->flags &= ~MAXIMIZED;
+ 
+ #ifdef WINDOWSHADE
+     if (tmp_win->buttons&WSHADE) {
+ 	tmp_win->flags &= ~MAXIMIZED;
+ 	tmp_win->buttons &= ~WSHADE;
+ 	XMapWindow(dpy,tmp_win->w);
+     }
+ #endif
+ 
      SetupFrame(tmp_win, tmp_win->orig_x, tmp_win->orig_y, tmp_win->orig_wd,
                 tmp_win->orig_ht,TRUE);
      SetBorder(tmp_win,True,True,True,None);
***************
*** 359,364 ****
--- 368,434 ----
      SetBorder(tmp_win,Scr.Hilite == tmp_win,True,True,tmp_win->right_w[0]);
    }
  }
+ 
+ #ifdef WINDOWSHADE
+ /***********************************************************************
+  *
+  *  WindowShade -- shades or unshades a window ([email-masked])
+  *
+  *  Args: 1 -- force shade, 2 -- force unshade  No Arg: toggle
+  * 
+  ***********************************************************************/
+ void WindowShade(XEvent *eventp,Window w,FvwmWindow *tmp_win,
+ 		 unsigned long context, char *action, int *Module)
+ {
+     int n = 0;
+ 
+     if (DeferExecution(eventp,&w,&tmp_win,&context, SELECT,ButtonRelease))
+ 	return;
+ 
+     if (!(tmp_win->flags & BORDER)) {
+ 	XBell(dpy, Scr.screen);
+ 	return;
+     }
+ 
+     while (isspace(*action))
+ 	++action;
+ 
+     if (*action)
+ 	sscanf(action,"%d",&n);
+ 
+     if (((tmp_win->buttons & WSHADE)||(n==2))&&(n!=1))
+     {
+ 	tmp_win->flags &= ~MAXIMIZED;
+ 	tmp_win->buttons &= ~WSHADE;
+ 	XMapWindow(dpy,tmp_win->w);
+ 	SetupFrame(tmp_win,
+ 		   tmp_win->frame_x, 
+ 		   tmp_win->frame_y, 
+ 		   tmp_win->orig_wd,
+ 		   tmp_win->orig_ht,
+ 		   False);
+ 	SetBorder(tmp_win,True,True,True,None);
+     } 
+     else
+     {
+ 	XWindowAttributes xwa;
+ 	unsigned long eventMask = xwa.your_event_mask;
+ 	tmp_win->flags |= MAXIMIZED;
+ 	tmp_win->buttons |= WSHADE;
+ 	XGetWindowAttributes(dpy, tmp_win->w, &xwa);
+ 	XSelectInput(dpy, tmp_win->w, eventMask & ~StructureNotifyMask);
+ 	tmp_win->flags &= ~MAPPED;
+ 	XUnmapWindow(dpy, tmp_win->w);
+ 	SetupFrame(tmp_win,
+ 		   tmp_win->frame_x,
+ 		   tmp_win->frame_y,
+ 		   tmp_win->frame_width,
+ 		   tmp_win->title_height + tmp_win->boundary_width,
+ 		   True);
+ 	XSelectInput(dpy, tmp_win->w, eventMask);
+     }
+ }
+ #endif /* WINDOWSHADE */
  
  /* For Ultrix 4.2 */
  #include <sys/types.h>
diff -cr ../orig/fvwm-2.0.43/fvwm/functions.c fvwm-2.0.43/fvwm/functions.c
*** ../orig/fvwm-2.0.43/fvwm/functions.c	Wed Jun 19 20:01:56 1996
--- fvwm-2.0.43/fvwm/functions.c	Tue Dec 10 00:59:54 1996
***************
*** 105,110 ****
--- 105,113 ----
    {"WarpToWindow", warp_func,        F_WARP,                FUNC_NEEDS_WINDOW},
    {"WindowFont",   LoadWindowFont,   F_WINDOWFONT,          FUNC_NO_WINDOW},
    {"WindowList",   do_windowList,    F_WINDOWLIST,          FUNC_NO_WINDOW},
+ #ifdef WINDOWSHADE
+   {"WindowShade",       WindowShade,    F_WINDOW_SHADE,              FUNC_NEEDS_WINDOW},
+ #endif
    {"WindowsDesk",  changeWindowsDesk,F_CHANGE_WINDOWS_DESK, FUNC_NEEDS_WINDOW},
    {"XORValue",     SetXOR,           F_XOR,                 FUNC_NO_WINDOW},
    {"+",            add_another_item, F_ADDMENU2,            FUNC_NO_WINDOW},
diff -cr ../orig/fvwm-2.0.43/fvwm/fvwm.c fvwm-2.0.43/fvwm/fvwm.c
*** ../orig/fvwm-2.0.43/fvwm/fvwm.c	Thu Jun 27 10:08:08 1996
--- fvwm-2.0.43/fvwm/fvwm.c	Tue Dec 10 03:17:39 1996
***************
*** 1080,1085 ****
--- 1080,1095 ----
  
    Reborder ();
  
+ #ifdef WINDOWSHADE
+   {
+       /* disable WindowShade of any windows */
+       FvwmWindow *fw = Scr.FvwmRoot.next;
+       for (; fw; fw = fw->next)
+ 	  if (fw->buttons&WSHADE)
+ 	      ExecuteFunction("WindowShade", fw,&Event,C_WINDOW,-1);
+   }
+ #endif
+ 
    if(restart)
    {
      SaveDesktopState();		/* I wonder why ... */
diff -cr ../orig/fvwm-2.0.43/fvwm/fvwm.h fvwm-2.0.43/fvwm/fvwm.h
*** ../orig/fvwm-2.0.43/fvwm/fvwm.h	Thu Apr 11 11:22:24 1996
--- fvwm-2.0.43/fvwm/fvwm.h	Tue Dec 10 02:53:24 1996
***************
*** 262,267 ****
--- 262,271 ----
  #define BUTTON9   256
  #define BUTTON10  512
  
+ #ifdef WINDOWSHADE
+ #define WSHADE	(1<<31)
+ #endif
+ 
  #include <stdlib.h>
  extern void Reborder(void);
  extern void SigDone(int);
diff -cr ../orig/fvwm-2.0.43/fvwm/fvwm2.man fvwm-2.0.43/fvwm/fvwm2.man
*** ../orig/fvwm-2.0.43/fvwm/fvwm2.man	Wed Jun 19 22:55:43 1996
--- fvwm-2.0.43/fvwm/fvwm2.man	Tue Dec 10 01:26:28 1996
***************
*** 1336,1341 ****
--- 1336,1349 ----
  will be shown.

+ .IP "WindowShade [ \fIopt\fP ]"
+ Toggles the window shade feature of windows with borders.  Windows in
+ the shaded state only display a title-bar.  If \fIopt\fP is not given,
+ the window shade state is toggled.  If \fIopt\fP is 1, the window is
+ forced to the shaded state.  If \fIopt\fP is 2, then the window is
+ forced to the non-shaded state.
+ 
+ 
  .IP "WindowFont \fIfontname\fP"
  Makes \fIfvwm\fP use font \fIfontname\fP instead of "fixed" for window
  title-bars.
diff -cr ../orig/fvwm-2.0.43/fvwm/misc.h fvwm-2.0.43/fvwm/misc.h
*** ../orig/fvwm-2.0.43/fvwm/misc.h	Wed Jun 19 21:31:15 1996
--- fvwm-2.0.43/fvwm/misc.h	Tue Dec 10 01:01:16 1996
***************
*** 194,199 ****
--- 194,203 ----
  extern void       sleep_a_little(int);
  void Maximize(XEvent *eventp,Window w,FvwmWindow *tmp_win,
  	      unsigned long context, char *action, int *Module);
+ #ifdef  WINDOWSHADE
+ void WindowShade(XEvent *eventp,Window w,FvwmWindow *tmp_win,
+ 		 unsigned long context, char *action, int *Module);
+ #endif
  extern void       RaiseWindow(FvwmWindow *t);
  extern void       LowerWindow(FvwmWindow *t);
  extern Bool       GrabEm(int);
diff -cr ../orig/fvwm-2.0.43/fvwm/parse.h fvwm-2.0.43/fvwm/parse.h
*** ../orig/fvwm-2.0.43/fvwm/parse.h	Thu May 30 14:03:10 1996
--- fvwm-2.0.43/fvwm/parse.h	Tue Dec 10 01:00:19 1996
***************
*** 89,94 ****
--- 89,95 ----
  #define F_SEND_STRING           112
  #define F_ADD_MOD               113
  #define F_DESTROY_MOD           114
+ #define F_WINDOW_SHADE	115
  
  /* Functions for use by modules only! */
  #define F_SEND_WINDOW_LIST     1000
diff -cr ../orig/fvwm-2.0.43/fvwm/resize.c fvwm-2.0.43/fvwm/resize.c
*** ../orig/fvwm-2.0.43/fvwm/resize.c	Fri Jun 30 11:07:23 1995
--- fvwm-2.0.43/fvwm/resize.c	Tue Dec 10 03:13:00 1996
***************
*** 110,115 ****
--- 110,122 ----
  
    XGrabServer(dpy);
  
+ #ifdef WINDOWSHADE
+   if (tmp_win->buttons&WSHADE) {
+       tmp_win->flags &= ~MAXIMIZED;
+       tmp_win->buttons &= ~WSHADE;
+       XMapWindow(dpy,tmp_win->w);
+   }
+ #endif
  
    /* handle problems with edge-wrapping while resizing */
    flags = Scr.flags;

---

From: Andrew Veliath <[email-masked]>
Date: Tue, 10 Dec 1996 10:29:18 -0500

Andrew> Here's a "WindowShade" function for fvwm 2.0.43 I worked
    Andrew> up with an added feature of being able to force the window
    Andrew> shade up or down with an argument.

    Andrew> I've not tested it much, so don't expect much :)...

Sorry for the repost, here's a version which works a bit better:

  
--- 164,170 ----
   * 

  
diff -cr ../orig/fvwm-2.0.43/fvwm/borders.c fvwm-2.0.43/fvwm/borders.c
*** ../orig/fvwm-2.0.43/fvwm/borders.c	Thu Apr 11 11:27:10 1996
--- fvwm-2.0.43/fvwm/borders.c	Tue Dec 10 10:23:57 1996
***************
*** 1060,1066 ****
        }
      }

--- 1141,1151 ----
+   if (tmp_win->attr.height <= 0)
  
--- fvwm-2.0.43/fvwm/builtins.c	Tue Dec 10 10:20:09 1996
--- 326,339 ----
+     if (tmp_win->buttons & WSHADE) {
--- 367,425 ----
  
  /* For Ultrix 4.2 */
  #include <sys/types.h>
  
    Reborder ();
  
+ #ifdef WINDOWSHADE
+   {
  
+ #ifdef WINDOWSHADE
+ #define WSHADE	(1<<31)
+ #endif
+ 
  #include <stdlib.h>

--- fvwm-2.0.43/fvwm/resize.c	Tue Dec 10 10:20:10 1996
***************
*** 110,115 ****
--- 110,121 ----
  
    XGrabServer(dpy);
  
+ #ifdef WINDOWSHADE
+   if (tmp_win->buttons & WSHADE) {
+       tmp_win->flags &= ~MAXIMIZED;
+       tmp_win->buttons &= ~WSHADE;
+   }
+ #endif

---

From: Andrew Veliath <[email-masked]>
Date: Tue, 10 Dec 1996 11:26:56 -0500

Here's also a version which works with the borderstyle/usedecor patch
(tbsp9b).  Again, not tested very much.

diff -cr orig/fvwm-2.0.43/Fvwm.tmpl fvwm-2.0.43/Fvwm.tmpl
*** orig/fvwm-2.0.43/Fvwm.tmpl	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/Fvwm.tmpl	Tue Dec 10 10:46:29 1996
***************
*** 204,215 ****
   * and DestroyDecor.  There is a slight memory penalty for each
   * additionally defined decor.
   * 
   ***************************************************************************/
  
  OPTION_DEFINES  = -DSHAPE
  OPTION_DEFINES += -DVECTOR_BUTTONS -DPIXMAP_BUTTONS -DGRADIENT_BUTTONS
  OPTION_DEFINES += -DMULTISTYLE -DEXTENDED_TITLESTYLE -DBORDERSTYLE
! OPTION_DEFINES += -DUSEDECOR

--- 204,223 ----
   * and DestroyDecor.  There is a slight memory penalty for each
   * additionally defined decor.
   * 
+  *
+  * -DWINDOWSHADE
+  * 
+  * Compiles in support for the WindowShade function.  This function "rolls"
+  * the window up so only the title-bar remains.  There are a few applications
+  * which seem to not like having this happen to them, but for the most part
+  * it seems to work.
+  *
   ***************************************************************************/
  
  OPTION_DEFINES  = -DSHAPE
  OPTION_DEFINES += -DVECTOR_BUTTONS -DPIXMAP_BUTTONS -DGRADIENT_BUTTONS
  OPTION_DEFINES += -DMULTISTYLE -DEXTENDED_TITLESTYLE -DBORDERSTYLE
! OPTION_DEFINES += -DUSEDECOR -DWINDOWSHADE

diff -cr orig/fvwm-2.0.43/fvwm/borders.c fvwm-2.0.43/fvwm/borders.c
*** orig/fvwm-2.0.43/fvwm/borders.c	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/borders.c	Tue Dec 10 10:43:43 1996
***************
*** 1370,1376 ****
        }
      }
  
--- 1370,1380 ----
        }
      }
  
*** 1447,1452 ****
--- 1451,1461 ----
  
diff -cr orig/fvwm-2.0.43/fvwm/builtins.c fvwm-2.0.43/fvwm/builtins.c
*** orig/fvwm-2.0.43/fvwm/builtins.c	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/builtins.c	Tue Dec 10 10:43:43 1996
  
  /* For Ultrix 4.2 */
  #include <sys/types.h>
diff -cr orig/fvwm-2.0.43/fvwm/functions.c fvwm-2.0.43/fvwm/functions.c
*** orig/fvwm-2.0.43/fvwm/functions.c	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/functions.c	Tue Dec 10 10:43:43 1996
***************
*** 124,129 ****
--- 124,132 ----
    {"WarpToWindow", warp_func,        F_WARP,                FUNC_NEEDS_WINDOW},
    {"WindowFont",   LoadWindowFont,   F_WINDOWFONT,          FUNC_NO_WINDOW},
    {"WindowList",   do_windowList,    F_WINDOWLIST,          FUNC_NO_WINDOW},
+ #ifdef WINDOWSHADE
+   {"WindowShade",       WindowShade,    F_WINDOW_SHADE,              FUNC_NEEDS_WINDOW},
+ #endif
    {"WindowsDesk",  changeWindowsDesk,F_CHANGE_WINDOWS_DESK, FUNC_NEEDS_WINDOW},
    {"XORValue",     SetXOR,           F_XOR,                 FUNC_NO_WINDOW},
    {"+",            add_another_item, F_ADDMENU2,            FUNC_NO_WINDOW},
diff -cr orig/fvwm-2.0.43/fvwm/fvwm.c fvwm-2.0.43/fvwm/fvwm.c
*** orig/fvwm-2.0.43/fvwm/fvwm.c	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/fvwm.c	Tue Dec 10 10:43:44 1996
***************
*** 1256,1261 ****
--- 1256,1271 ----
  
    Reborder ();
  
+ #ifdef WINDOWSHADE
+   {
+       /* disable WindowShade of any windows */
+       FvwmWindow *fw = Scr.FvwmRoot.next;
+       for (; fw; fw = fw->next)
+ 	  if (fw->buttons&WSHADE)
+ 	      ExecuteFunction("WindowShade", fw,&Event,C_WINDOW,-1);
+   }
+ #endif
+ 
    if(restart)
    {
      SaveDesktopState();		/* I wonder why ... */
diff -cr orig/fvwm-2.0.43/fvwm/fvwm.h fvwm-2.0.43/fvwm/fvwm.h
*** orig/fvwm-2.0.43/fvwm/fvwm.h	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/fvwm.h	Tue Dec 10 10:43:44 1996
***************
*** 268,273 ****
--- 268,277 ----
  #define BUTTON9   256
  #define BUTTON10  512
  
+ #ifdef WINDOWSHADE
+ #define WSHADE	(1<<31)
+ #endif
+ 
  #include <stdlib.h>
  extern void Reborder(void);
  extern void SigDone(int);
diff -cr orig/fvwm-2.0.43/fvwm/misc.h fvwm-2.0.43/fvwm/misc.h
*** orig/fvwm-2.0.43/fvwm/misc.h	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/misc.h	Tue Dec 10 10:43:44 1996
***************
*** 204,209 ****
--- 204,213 ----
  extern void       sleep_a_little(int);
  void Maximize(XEvent *eventp,Window w,FvwmWindow *tmp_win,
  	      unsigned long context, char *action, int *Module);
+ #ifdef  WINDOWSHADE
+ void WindowShade(XEvent *eventp,Window w,FvwmWindow *tmp_win,
+ 		 unsigned long context, char *action, int *Module);
+ #endif
  extern void       RaiseWindow(FvwmWindow *t);
  extern void       LowerWindow(FvwmWindow *t);
  extern Bool       GrabEm(int);
diff -cr orig/fvwm-2.0.43/fvwm/parse.h fvwm-2.0.43/fvwm/parse.h
*** orig/fvwm-2.0.43/fvwm/parse.h	Tue Dec 10 10:49:48 1996
--- fvwm-2.0.43/fvwm/parse.h	Tue Dec 10 10:51:09 1996
***************
*** 96,101 ****
--- 96,102 ----
  #define F_CHANGE_DECOR		119
  #define F_DESTROY_DECOR		120
  #define F_UPDATE_DECOR		121
+ #define F_WINDOW_SHADE		122
  
  /* Functions for use by modules only! */
  #define F_SEND_WINDOW_LIST     1000
diff -cr orig/fvwm-2.0.43/fvwm/resize.c fvwm-2.0.43/fvwm/resize.c
*** orig/fvwm-2.0.43/fvwm/resize.c	Fri Jun 30 11:07:23 1995
--- fvwm-2.0.43/fvwm/resize.c	Tue Dec 10 10:43:44 1996
***************
*** 110,115 ****
--- 110,121 ----
  
    XGrabServer(dpy);
  
+ #ifdef WINDOWSHADE

---

From: [email-masked]
Date: Tue, 10 Dec 1996 11:41:05 -0500 (EST)

Ok this maybe impossible but ,

What I'm looking for is a way to make the background of a window (an xterm 
for example) transparent. This could be toggle on-off with a button on the
title bar.

This of course may not be possible from the window manager and
would require modifications on the client.(hence the problem would be
modify all clients where this could be usefull !)

+---------------------------------------------------------------------+
| Mario Dupuis		   Internet : [email-masked]    |
| System Administrator	   Phone    : (514) 855-5001   ext: 1720      |
| Canadair Aerospace Group Fax      : (514) 855-2157		      |
+---------------------------------------------------------------------+