From mcrocker@student.umass.edu Thu Nov 18 15:30:43 1993
Return-Path: <mcrocker@student.umass.edu>
Received: from eagle.is.lmsc.lockheed.com (eagle.lockheed.com) by rocket (4.1/SMI-4.1)
	id AA22974; Thu, 18 Nov 93 15:29:27 EST
Received: by eagle.is.lmsc.lockheed.com (5.57/Ultrix-4.2)
	id AA15084; Thu, 18 Nov 93 12:29:22 -0800
Received: from twain.ucs.umass.edu by pobox.ucs.umass.edu (PMDF V4.2-14 #2573)
 id <01H5GRIGRQGW00AIB1@pobox.ucs.umass.edu>; Thu, 18 Nov 1993 15:14:54 -0500
Received: from localhost (mcrocker@localhost) by twain.ucs.umass.edu
 (8.6.4/8.6.4) id PAA12283 for nation@rocket.sanders.lockheed.com; Thu,
 18 Nov 1993 15:14:52 -0500
Date: Thu, 18 Nov 1993 15:14:51 -0500 (EST)
From: "Matthew S. Crocker" <mcrocker@student.umass.edu>
Subject: Forcing mono on broken Xservers.
To: nation@rocket.sanders.lockheed.com
Message-Id: <199311182014.PAA12283@twain.ucs.umass.edu>
Mime-Version: 1.0
X-Mailer: ELM [version 2.4 PL22]
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 7106
Status: RO


Hi,

 I added a bunch of #ifndef's to add a compile time option so that you
can force fvwm into mono mode no matter what.  I was going to add an
option to .fvwmrc but this was alot easier.  If you want me to do it
that way, let me know I'll change things.

Anyway,  here are the diffs if you want

-L8r,

Again,  thanks for a *great* window manager!

-Matt/2

-- 
-Matthew S Crocker               "The mask, given time, comes
mcrocker@twain.ucs.umass.edu      to be the face itself."  -anonymous
*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*OS/2*
 *linux*linux*linux*linux*linux*linux*linux*linux*linux*linux*linux*linux*

----- CUT HERE ----
diff -c fvwm/Makefile.noImake fvwm_mono/Makefile.noImake
*** fvwm/Makefile.noImake	Wed Nov 10 16:01:20 1993
--- fvwm_mono/Makefile.noImake	Thu Nov 18 14:49:44 1993
***************
*** 90,96 ****
  #If your libraries don't have strncasecmp(), uncomment this line 
  #EF4 = -DNEEDS_STRNCASECMP
  
! EXTRAFLAGS = $(EF1) $(EF2) $(EF3) $(EF4) $(MENUFLAGS)
  
  
  
--- 90,103 ----
  #If your libraries don't have strncasecmp(), uncomment this line 
  #EF4 = -DNEEDS_STRNCASECMP
  
! #If your display is 1 bit but your Xserver thinks it is 8 bit then
! #uncomment the next line.  this will force fvwm to run in MONO mode
! #and will make the window decorations prettier.
! # Matthew S. Crocker  mcrocker@twain.ucs.umass.edu
! #	              mcrocker@student.ucs.umass.edu
! #EF5 = -DFORCEMONO
! 
! EXTRAFLAGS = $(EF1) $(EF2) $(EF3) $(EF4) $(EF5) $(MENUFLAGS)
  
  
  
diff -c fvwm/add_window.c fvwm_mono/add_window.c
*** fvwm/add_window.c	Wed Nov 10 16:15:48 1993
--- fvwm_mono/add_window.c	Thu Nov 18 14:41:36 1993
***************
*** 337,346 ****
--- 337,349 ----
      2*tmp_win->boundary_width;
  
    valuemask = CWBorderPixel | CWCursor | CWEventMask;
+ #ifndef FORCEMONO  
    if(Scr.d_depth < 2)
      {
+ #endif
        attributes.background_pixmap = Scr.light_gray_pixmap ;
        valuemask |= CWBackPixmap;
+ #ifndef FORCEMONO
      }
    else
      {
***************
*** 347,352 ****
--- 350,357 ----
        attributes.background_pixel = Scr.StdColors.back;
        valuemask |= CWBackPixel;
      }
+ #endif
+ 
    attributes.border_pixel = Scr.StdRelief.back;
    attributes.cursor = Scr.FvwmCursors[DEFAULT];
    attributes.event_mask = (SubstructureRedirectMask | ButtonPressMask | 
diff -c fvwm/borders.c fvwm_mono/borders.c
*** fvwm/borders.c	Tue Nov  9 23:19:44 1993
--- fvwm_mono/borders.c	Thu Nov 18 14:28:29 1993
***************
*** 168,177 ****
--- 168,181 ----
      {
        if(NewColor)
  	{
+ #ifndef FORCEMONO
  	  if(Scr.d_depth < 2)
+ #endif
  	    XSetWindowBackgroundPixmap(dpy,t->pager_view,BackPixmap);
+ #ifndef FORCEMONO
  	  else
  	    XSetWindowBackground(dpy,t->pager_view,BackColor);
+ #endif
  	  XClearWindow(dpy,t->pager_view);
  	}
        if((t->icon_name != NULL)&&(Scr.PagerFont.height > 0))
***************
*** 191,200 ****
--- 195,207 ----
  
    valuemask = CWBorderPixel;
    attributes.border_pixel = BorderColor;
+ #ifndef FORCEMONO
    if(Scr.d_depth < 2)
      {
+ #endif
        attributes.background_pixmap = BackPixmap;
        valuemask |= CWBackPixmap;
+ #ifndef FORCEMONO
      }
    else
      {
***************
*** 201,206 ****
--- 208,214 ----
        attributes.background_pixel = BackColor;
        valuemask |= CWBackPixel;
      }
+ #endif
  	
    if(t->flags & (BORDER|TITLE))
      {
***************
*** 315,324 ****
--- 323,336 ----
        flush_expose (t->frame);
        /* for mono - put a black border on 
         * for color, make it the color of the decoration background */
+ #ifndef FORCEMONO
        if(Scr.d_depth <2)
+ #endif
  	XSetWindowBorder(dpy,t->frame,TextColor);
+ #ifndef FORCEMONO
        else
  	XSetWindowBorder(dpy,t->frame,BackColor);
+ #endif
      }
  }
  
***************
*** 363,370 ****
--- 375,384 ----
  
    /* for mono, we clear an area in the title bar where the window
     * title goes, so that its more legible. For color, no need */
+ #ifndef FORCEMONO
    if(Scr.d_depth<2)
      {
+ #endif
        RelieveWindow(t->title_w,0,0,hor_off-2,t->title_height,
  #ifdef MOTIF
  		    ReliefGC, ShadowGC, BOTTOM_HILITE);
***************
*** 382,387 ****
--- 396,402 ----
  		     w+4,t->title_height);
        XDrawLine(dpy,t->title_w,ShadowGC,hor_off+w+1,0,hor_off+w+1,
  		t->title_height);
+ #ifndef FORCEMONO
      }
    else
      RelieveWindow(t->title_w,0,0,t->title_width,t->title_height,
***************
*** 389,394 ****
--- 404,410 ----
  		  ReliefGC, ShadowGC, BOTTOM_HILITE);
  #else
  		  ReliefGC, ShadowGC);
+ #endif
  #endif
    
    XDrawString (dpy, t->title_w,Scr.FontGC,hor_off, Scr.WindowFont.y+1, 
diff -c fvwm/functions.c fvwm_mono/functions.c
*** fvwm/functions.c	Wed Nov 10 11:49:16 1993
--- fvwm_mono/functions.c	Thu Nov 18 14:28:29 1993
***************
*** 326,335 ****
--- 326,339 ----
  	  BackPixmap = Scr.light_gray_pixmap;
  	  BackColor = Scr.StdColors.back;
  	}
+ #ifndef FORCEMONO
        if(Scr.d_depth < 2)
+ #endif
  	XSetWindowBackgroundPixmap(dpy,tmp_win->pager_view,BackPixmap);
+ #ifndef FORCEMONO
        else
  	XSetWindowBackground(dpy,tmp_win->pager_view,BackColor);
+ #endif
        XClearWindow(dpy,tmp_win->pager_view);
        if((tmp_win->icon_name != NULL)&&(Scr.PagerFont.height > 0))
  	{
Common subdirectories: fvwm/fvwm_icons and fvwm_mono/fvwm_icons
diff -c fvwm/icons.c fvwm_mono/icons.c
*** fvwm/icons.c	Wed Nov 10 16:50:36 1993
--- fvwm_mono/icons.c	Thu Nov 18 14:28:31 1993
***************
*** 282,291 ****
--- 282,295 ----
  
    if(Scr.Focus == Tmp_win)
      {
+ #ifndef FORCEMONO
        if(Scr.d_depth < 2)
+ #endif
  	Relief = Scr.HiShadowGC;
+ #ifndef FORCEMONO
        else
  	Relief = Scr.HiReliefGC;
+ #endif
        Shadow = Scr.HiShadowGC;
        XSetWindowBackground(dpy,Tmp_win->icon_w,Scr.HiColors.back);
        if((Tmp_win->flags & ICON_OURS)&&(Tmp_win->icon_pixmap_w != None))
***************
*** 301,310 ****
--- 305,318 ----
      }
    else
      {
+ #ifndef FORCEMONO
        if(Scr.d_depth < 2)
+ #endif
  	Relief = Scr.StdShadowGC;
+ #ifndef FORCEMONO
        else
  	Relief = Scr.StdReliefGC;
+ #endif
        Shadow = Scr.StdShadowGC;
        XSetWindowBackground(dpy,Tmp_win->icon_w,Scr.StdColors.back);
        if((Tmp_win->flags & ICON_OURS)&&(Tmp_win->icon_pixmap_w != None))
diff -c fvwm/menus.c fvwm_mono/menus.c
*** fvwm/menus.c	Tue Nov  9 23:20:11 1993
--- fvwm_mono/menus.c	Thu Nov 18 14:28:30 1993
***************
*** 176,185 ****
--- 176,189 ----
    text_y = y_offset + Scr.StdFont.y;
  
    ShadowGC = Scr.StdShadowGC;
+ #ifndef FORCEMONO
    if(Scr.d_depth<2)
+ #endif
      ReliefGC = Scr.StdShadowGC;
+ #ifndef FORCEMONO
    else
      ReliefGC = Scr.StdReliefGC;
+ #endif
  
    XClearArea(dpy, mr->w, 0,y_offset,mr->width,y_height,0);
    if ((mi->state)&&(mi->func != F_TITLE)&&(mi->func != F_NOP)&&*mi->item)
Common subdirectories: fvwm/sample_configs and fvwm_mono/sample_configs
Common subdirectories: fvwm/unsupported_patches and fvwm_mono/unsupported_patches
Common subdirectories: fvwm/xpmroot and fvwm_mono/xpmroot

