[comp.windows.x] new GWM update on expo

colas@avahi.inria.fr (Colas Nahaboo) (01/03/91)

I have just put gwm-1.7_gamma on expo (and avahi)
doc is still 1.6b, but I updated the CHANGES files, which is included in this
message. Recent Mike Newton profile is included as "mon-keys.gwm".

Here are the changes from 1.6b
The version will turn to plain 1.7 as soon as I have updated the latex doc...

1.7_gamma	(90/12/28)	deep clean up: profile reorg, xpm2, bugs

	This version is the result of collecting all the contributed patches
	sent to me, chasing the last bugs hiding in dark corners, and
	reorganizing the standard profile code for having a much cleaner for
	adding things. Gwm 2.0 being late, this is to have a solid gwm version
	to play with meanwhile.
	WARNING: The LaTeX doc is not yet updated, hope to do it in Feb 91.

    INCOMPATIBILITIES WITH PREVIOUS PROFILES:

      - gwm now uses XPM v2 format to read color images, not anymore XPMv1.
        converters from v1 to v2 are included in the XPM v2.8 distrib included
	in the xpm subdirectory, files xpm1to2.perl (perl script), and from
	ppm to xpmv2: ppmtoxpm2.c (C program). Perl is a language available
	by anonymous ftp from prep.ai.mit.edu. Xpm1 file won't be recognized,
	but gwm won't break, just display the X logo instead.

    NEW FUNCTIONS:

      - new events enter-window-not-from-grab & leave-window-not-from-grab
        used for tricky interactions in menus.

      - color-components function returns (R G B) list of primary color
        components of a color made by color-make.

      - wool: trace-func.gwm package to add ability to individually trace wool
        functions by trace-func and untrace-func

      - wool: Jay Berkenbilt's match-windowspec function to choose decos by
        regular expressions on window names or class is included in utils.gwm

    BUGS CORRECTED:

      - clients started as iconic before gwm launch now work OK.
	(bug report: John Mackin <john@cs.su.oz.au>,
		     David Hogan <dhog@cs.su.oz.au>)

      - setting window-size bugged on windows which didn't have resize incr
        hints set.

      - basebars without titlebars on non-rectangular windows triggered an
        error (bug found by Frank Mangin <Frank.Mangin@mirsa.inria.fr>)

      - a random bus error due to uninitialized variable in redecoration of
        windows fixed

      - gwm didn't handle resizes or move too early after initial mapping

      - could crash if window was destroyed too fast. More generally, all (I
        hope) timing bugs have been chased to death...

      - bus errors while moving windows with move-opaque shouldn't appear
        anymore 

      - \xNN escape sequence in strings for specifiying chars by hex value was
        bugged.

      - rotate-cut-buffer was bugged

      - (boundp '()) was returning ()

      - set-icon didn't work

      - unmapped group leaders were mapped (never-mapped toplevel widgets for
        instance) 

      - the propagate argument provided to send-user-event survived function
        invocation.

      - simple-win.gwm: title stayed of inactive color in some cases

      - Carl Witty <cwitty@portia.stanford.edu>: confined windows could get 
        1 pixel off the right & down of screen

      - John Carr <jfc@ATHENA.MIT.EDU>: make decoration windows have
        background "none" to decrease flashing. I forgot to include this patch
	in 1.6b

      - wool: (exit insts...) were evaluating inst after restoring old
      context!

      - wool: exit out of a for didn't restore correcetly the old values

      - + misc bugs... Globally safer when X errors happen at unexpected times

    COMPATIBLE ENHANCEMENTS:

      - send-key-to-window automatically adds "shift" as modifier to
        upper-case letters sent, to behave as expected when sending a string
	with mixed upper/lower case. Pointed by Frank Mangin
	<Frank.Mangin@mirsa.inria.fr>.

      - pixmap-load now supports symbolic color overriding, a XPM v2 feature
        (e.g (pixmap-load "mailbox" "flag" "Red" "sky" (color-make "Blue"))) 

      - menu-make skips nil entries

      - make-string-usable-for-resource-key traps now blanks & * as well as .

      - traps Program sizes <= 1 for this brain-dead motif 1.1

    STANDARD PROFILE:

      - I now use the "amc-lisp" indent style under emacs for indenting wool
        code. amc-lisp.el is provided with the epoch distribution.

      - all client specifications for set-window, set-icon et al. now can be
        either class-name, class-name.client-name,
	class-name.client-name.window-name, or
	class-name.client-name.window-name.machine-name. *-notation is
	supported. You can say (set-window "Xman*Manual_Page" foo)

      - decos are now evaluated at *deco* time, not when reading profile as
        before. At evaluation, the deco is recursively processed (up to 10
	times) till a decoration is obtained. (an atom/string is taken as a
	file name and loaded, a function is called without args, a list is
	evaluated). This should supress a lot of complicated quoting in
	decos. This should not break existing decos, and you can then supress
	most of the quoting you were forced to use with the previous method.

      - raise-on-move, raise-on-resize and raise-on-iconify global flags.

      - exemple .profile.gwm is much cleaner (and commented)

      - Jay Berkenbilt <qjb@ATHENA.MIT.EDU> cute mini virtual screen package
        included. Use by loading "vscreen" at the start of your profile, then
	move along by Ctrl-Alt-Keys. Map available by root menu (see item 
	"VS Show" in menu). see vscreen.gwm on how to customize.

      - Rod Whitby: float package (was called auto-raise) included to make
        windows always on top or to the background use by loading "float",
	then new items added on window/icon menu.
	This package uses visibility events, so can miss some cases and may
	enter (exitable) loops if 2 floating windows overlap.

      - Rod Whitby: unconf-move package, allows you to still move/resize
	windows off screen boundaries, even if confine-windows is set (by
	using the control key)

      - Rod Whitby: suntools-keys package to iconyfy windows with F7 or L7,
        and to toggle raise/lower with F5 or L5

      - Mike Newton's (newton@gumby.cs.caltech.edu): mon-keys.gwm package to
        add many WM functions on functions keys, such as F1/F2 to go to
	next/previous window

      - icon-groups package now adds 3 ways to iconify in the menu item
        for iconifying: iconifying all group, this window (default), all
	other windows of the group.

      - dvrooms: Philippe Kaplan <phk@mirsa.inria.fr> added a flag
        dvroom.icon-box, which, if set to t will make dvrooms non-exclusive
	(more than one open at a time)

      - added the "float" package of Rod Whitby <rwhitby@adl.austek.oz.au>
        to make window always float before others, or sink to the background

      - menu code is cleaned up: menus are now a list of items during profile,
        where loaded packages can modify this list. The menu is then built
	from the list after user profile is read. These lists are
	window-pop-items, icon-pop-items, root-pop-items.

      - menu buttons can now be strings, pixmaps, or any lisp expression
        returning a pixmap

      - multi-item entries in menus (with multi-item-make)

      - menus now have a default action triggered when button is released
	before menu is mapped. (nothing was done before)
	Default action is set by the menu-default-action function

      - reparse-standard-behaviors simplified, and window- & icon-behavior now
        do not include anymore standard-behavior, you must include it when
	building your fsms from these behaviors

      - dvroom package new dvroom.auto-add flag to tell if new windows will
        get automatically included in current room.

      - new "customize" function to generically modify decos by context
        E.g.: (customize simple-icon any Xman
			 simple-icon.background (color-make "MistyRose"))
	simple-icon and term-icon are customizable this way now
	thus having a standard interface for customizing all packages on a
	client basis

      - screen-tile & icon-pixmap are defaulted-to intead of set.

      - the provided rxterm script in data/ subdir now works with full
        internet adresses 

      - the "client info" menu item now pops-up an independant window.

      - bugs in simple-ed-win corrected by duanev@mcc.com (Duane Voth)

      - "reload" item no more included in root menu (reloading profile is
        often not sufficent...)

    MWM PROFILE:

        mwm profile is not affected by the standard profile modifications

      - Carl Witty <cwitty@portia.stanford.edu> patches:
        mwm profile:
            f.maximize corrected:
                If executed from a menu, it didn't correctly change the
    	    state of the window's zoom button
    	    It did set the zoom button's pixmap incorrectly, although
    	    this was corrected as soon as a leave-window event is generated.
    	keyboard menu traversal more sensible
    	new functions:
    	    (f.eval (? "Hello")) will print hello when it is executed.
    	    (f.identify) pops up a window which giving information about the
    	    current window.
    	    (f.delete) uses the WM_DELETE_WINDOW protocol to delete a window.
    	    (f.load "mwm") will reload the mwm profile.
    	    (f.raise_lower) is my version, which doesn't raise a window unless
    	    another on-screen window actually obscures it.
    	    (f.raise_move) is obvious.
    	    (f.refresh_win) didn't do anything before; now it does.
    	    (f.warpto "emacs") warps the mouse to the first emacs window found
    	    and brings it to the front.  I implemented it for a friend who 
    	    likes twm.
    	I didn't like the look of disabled menu items in the mwm profile, with
    	    that line drawn through them, so I added some modifications to 
    	    allow disabled menu items to be displayed in a different color
    	    instead.

    TWM PROFILE:

        twm profile is not affected by the standard profile modifications

      - Carl Witty <cwitty@portia.stanford.edu> patches:
        Some patches to make the icon manager in the twm profile act
        more like the one in the X11R4 twm.  That is, when the cursor is in
    	the icon manager, the focus is set to the window whose bar the cursor
    	is over.  The patches also change it so that the icon manager doesn't
    	resize when a window is iconified or deiconified.

    CHANGES TO THE DOC:

      - LaTeX doc is not yet updated. 1.7 will be 1.7_alpha/beta/gamma....
        with doc updated

      - John Mackin <john@cs.su.oz.au> corrections to the man page

      - casey@gauss.llnl.gov (Casey Leedom): namespace doc entries out of
        order 




Colas Nahaboo, BULL Research FRANCE -- Koala Project -- GWM X11 Window Manager
Internet: colas@mirsa.inria.fr, Phone: (33) 93.65.77.70, Fax: (33) 93 65 77 66
INRIA Sophia, 2004, rte des Lucioles, B.P.109 - 06561 Valbonne Cedex, FRANCE