Thu Aug 13 11:56:46 1998  Greg Badros  <gjb@cs.washington.edu>

	* resize.c: Added DBUG code for ConstrainSize

	* add_window.c: Do not add in psw->bw to frame_width, frame_height 
	  (was causing windows to grow in size on decorating).  This
	  reverts an earlier change which was thought to be necessary but
	  was fixed by making ConstrainSize round instead of truncate.

Thu Aug 13 11:17:12 1998  Greg Badros  <gjb@cs.washington.edu>

	* placement.c: Fix bug reported by <forcer@mindless.com> re:
	  interactive placement not moving the window to the current
	  pointer position initially.

Thu Aug 13 10:03:08 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c, move.c: Use (possibly) shaded height in
	  ResizePswToCurrentSize, SetScwmWindowPosition, InteractiveMove

	* virtual.c, deskpage.c: Do not use bogus 10000 special number in
	  FNeedsPaging (patch from Robert Bihlmeyer); use #f instead for
	  s_set_edge_scroll_delay_x

Wed Aug 12 18:07:23 1998  Greg Badros  <gjb@cs.washington.edu>

	* scwm.c, module-types.h: Rename M_ERROR macro to M_FVWM_ERROR
	  (conflict with a solaris header file)

	* binding.c: Remove some unused variables

	* syscompat.h: #include <unistd.h> for usleep

Wed Aug 12 17:26:30 1998  Greg Badros  <gjb@cs.washington.edu>

	* move.c: Added Todd Larson's patch

	* window.c: Let move-to take #f for X or Y to mean don't move
	  along that coordinate.

Wed Aug 12 14:59:21 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c: Added resize-frame-to which does what resize-to used
	  to do, and made resize-to's size talk about the client window
	  size;  also added window-frame-size with old behaviour and make
	  window-size return four values, instead of just two  -- 3rd and
	  4th are size in resize increments.

	* resize.c: Rewrite makemult as a function, and make it round,
	  instead of truncate

	* placement.c: Do not call SetupFrame from PlaceWindow -- let it
	  get called later in HandleMapNotify.

	* add_window.c: Be sure to initialize psw->xboundary_width and
	  psw->bw properly before calling ConstrainSize.  Add psw->bw into 
	  psw->initial size estimates for the frame

Wed Aug 12 09:22:35 1998  Greg Badros  <gjb@cs.washington.edu>

	* color.c: Invert gh_number_p tests in various type checking to
	  permit numbers.  Thanks Dale Smith!

Tue Aug 11 18:45:33 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c, borders.c, borders.h, placement.c:
	  Removed SendEvent argument from SetupFrame, and its calls.

	* borders.c: Added some debug code, and unmap decoration windows
	  that are not supposed to be mapped

Mon Aug 10 17:45:55 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c: Added SendClientConfigureNotify fn, and call it from
	  MovePswToCurrentPosition and ResizePswToCurrentSize (instead of
	  having the code in SendClientConfigureNotify inline in
	  SetupFrame).  Rename local var w to cpix, since w implies an
	  X-Window to me.

	* scwm.c: Added error checking after opening of display in if
	  (!single) branch

	* resize.c: Use psw->xboundary_width instead of
	  psw->boundary_width for width of the window

	* borders.c: Move the SendClientConfigureNotify code into function 
	  by that name in window.c (from SetupFrame).  Added macro to
	  check 'no-side-decorations property, and honour it by using
	  xboundary_width instead of boundary_width, as appropriate.
	  (This is not yet a debugged feature -- unhighlighted windows do
	  not display properly, and the top boundary decoration sidebar
	  should probably be dropped when side-decorations are dropped
	  (just letting the titlebar serve as the top boundary decoration)

	* window.h: Added xboundary_width field of struct ScwmWindow, and
	  use it in GRAV_X_ADJUSTMENT macro

1998-08-13  Robert Bihlmeyer  <robbe@orcus.priv.at>

	* deskpage.c (s_set_edge_scroll_delay_x): Change calling
 	convention. usec == #f now means that scrolling is prohibited.
 	Warn whenever old usage of usec is detected.

	* virtual.c (FNeedsPaging): "Scrolling prohibited" is now
 	signalled with a negative time.

Fri Aug  7 20:04:44 1998  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am: Added changed.c, log-usage.c, log-usage.h.
	  changed.c is automatically managed by the CVSROOT/loginfo admin
	  file on the server, using the make-repo-date-file from
	  utilities/dev/make-repo-date-file.  Note that after a commit,
	  devs will need to "cvs update changed.c" to make changed.c correct

	* log-usage.c, log-usage.h: Added, defined SendUsagePacket()
	  function

	* miscprocs.c: Added scwm-version-date primitive to give the
	  string in changed.c.

	* scwm.c (scwm_maybe_send_thankyou_packet): Add this function,
 	have it call SendUsagePacket() from log-usage.c, and call the
 	function after run_startup_hook() is invoked.  Can set
 	SCWM_DO_NOT_LOG_USAGE environment variable to turn off, and must
 	set thank-scwm-authors-with-usage-note to #t for any packets to
 	leave user's machine

Fri Aug  7 18:03:29 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Rename list-windows-in-stacking-order to
 	list-stacking-order; make it list each window only once (previous
 	version gave one instance for each of main window, icon and icon
 	title).
 
Fri Aug  7 10:43:43 1998  Greg Badros  <gjb@cs.washington.edu>

	* scwm.c: create scmFixedFont global object to use in a last-ditch 
	  need for a font; fix unrelated compiler warning

	* font.h, font.c: Added global scmFixedFont which should always be 
	  initialized and contain the fixed font

	* drawmenu.c: Patched PscwmFontForMenuItem to use FONT() instead
	  of completely wrong (scwm_font *) cast.  Thanks Craig Kaplan!

	* borders.c: Unmap the side windows if their width/height would be 
	  zero.  Fixes problems I noticed with robbe.scwmrc's barebones decor

	* scwm-constraints.cc: Use resolve() form instead of resolve(..)
	  for changing virtual position so that it works with nested
	  edits.

Thu Aug  6 22:04:48 1998  Greg Badros  <gjb@cs.washington.edu>

	* resize.c, move.c: Remove ifdefs around the code to manage
	  changing the virtual screen w/ cassowary since I now have
	  nestable beginEdits;  Fix SnapCoordsToEdges to remove some
	  errors that Tom Larason brought to my attention (and provided a
	  patch for that I used slightly modified)

	* borders.c, windows.c: Handle set-mwm-border! more accurately,
	  including fixing the border-width of the frame and Parent
	  windows, and do the border resizing in SetupFrame.

Thu Aug  6 11:55:21 1998  Greg Badros  <gjb@cs.washington.edu>

	* constraint-primitives.cc: Add cassowary_scm.h to avoid warning
	  re: init_cassowary_scm.

	* add_window.c: put back in the ResizePswToCurrentSize in
	  CassowaryEndEdit() for non-cassowary builds.

Wed Aug  5 20:17:56 1998  Greg Badros  <gjb@cs.washington.edu>

	* borders.c: Added SQUASHED_TITLEBAR_P macro and squashed-titlebar 
	  feature (set-object-property! win 'squashed-titlebar #t), then
	  resize the window to see rough but working version -- requires
	  XShape extension.

	* window.h, decorations.c, add_window.c: renamed wShaped field of
	  ScwmWindow to fShaped, and make it a Bool instead of int.

	* window.c: Clean up CopySetAllFlags to be consistent w/ use of
	  braces.

	* scwm.h: Added GDB_STOP macro for inserting a breakpoint in the
	  source code for walking through newly written code.

	* scwm.c: Call init_xrm(), XrmInitialize() (latter always
	  should've been called); remove call to init_cassowary_scm() --
	  let init_constraint_primitives() do that

	* scwm-constraints.cc, add_window.c: Don't do anything on CassowaryEndEdit() if
	  no solver; also, make XrmDatabase db non-file-static, so xrm.c
	  can use it.

	* constraint-primitives.cc: Call init_cassowary_scm() here,
	  instead of from scwm.c

	* move.c: Factor out SnapCoordsToEdges, and fix off by 1 error on
	  left and top edges;  clean up some of the paging stuff while
	  moving so that SetupFrame is called a lot less frequently
	  (though it's still broken for cassowary pending the virtual
	  screen rewrite)

Wed Aug  5 20:09:52 1998  Greg Badros  <gjb@cs.washington.edu>

	* xrm.c: Added for primitives X-resource-put and X-resource-get

	* Makefile.am: Updated for xrm.c, xrm.x

Tue Aug  4 17:53:17 1998  Greg Badros  <gjb@cs.washington.edu>

	* constraint-primitives.cc: Added cl-windows-of-constraint
	  primitive

Tue Aug  4 14:57:44 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c: Restore the call to SetupFrame after animated
	  shade/unshade since combinations of animated/unanimated
	  shading/unshading fail unless the state of the window is
	  well-defined.

	* scwm-constraints.hpp, constraint-primitives.cc: Make _scmXL,
	  _scmXR and _scmYT, _scmYB all fields, instead of forcing writing
	  the linear-expressions to find the right coordinate of a window at
	  the scheme level.

	* move.c: Remove mention of set-opaque-move-size! from docs for
	  interactive-move.

Tue Aug  4 12:01:32 1998  Greg Badros  <gjb@cs.washington.edu>

	* menu.h, menu.c: Added x_pos, y_pos, and left_side_p args to
	  popup_menu, improve arg processing; added
	  SetPopupMenuPositionFromDecoration to help out.

	* binding.c: Cleanup docs for mouse-event-type

Mon Aug  3 16:13:52 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c: Use new macro SET_BIT_FOR_OBJ_PROP within
	  FlagsBitsFromSw to do the right thing with WinlistSkip,
	  Maximized, etc; ifdef-out a redundant BroadcastConfig

	* decorations.c: Un-ifdef out the resetting of fBorder when
	  boundary_width is 0.  There still seems to be a race condition
	  with the FvwmWinList coming up w/o a title whereby the
	  Configure notification to a module hangs when writing to the
	  pipe (a hypothesis---not fully observed).

Mon Aug  3 13:24:19 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c: Added list-all-windows-in-stacking-order primitve, use 
	  gh_cons instead of scm_cons in list-all-windows and update its
	  comment

	* scwm.c, scwm.h: added JunkWindow, to replace JunkChild,
	  JunkRoot, since we really need only one for the xlib calls

Sun Aug  2 17:57:14 1998  Greg Badros  <gjb@cs.washington.edu>

	* resize.c, virtual.h, virtual.c: Added FNeedsPaging() as a pretest for
	  HandlePaging() -- use it in resize.c, but not yet in move.c.

	* move.c: Use 2 pixel range for testing if we're on the boundary
	  for fResize==True in Keyboard_shortcuts

	* menu.c: Make submenus automatically select the first item in the 
	  submenu; require C+<key> for the alphanumeric menu movement keys
	
Sun Aug  2 16:37:31 1998  Greg Badros  <gjb@cs.washington.edu>

	* xmisc.h, xmisc.c, draw_menu.c: Patches from ITANI Eiichiro
	  <emu@ceres.dti.ne.jp> for I18N ComputeXTextWidth problems.

	* window.c: Pass no psw to Keyboard_shortcuts in DeferExecution;
	  clean up some comments

	* shutdown.c: Fixed reorganization problem so segfault still tries 
	  to clean up the display if the display is already successfully
	  opened.

	* scwm-screen-ci.hpp, scwm-constraints.hpp: Do not add
	  automatically-destroyed constraints into the solver.  Really
	  need to do the handle wrappers of constraints, expressions, and
	  vars!  Use new ClConstraint->Pv() to point at the scheme object
	  that is that constraint.

	* resize.c, move.c: Try to get paging during a resize/move right
	  even with Cassowary in use; Fix Keyboard_shortcuts to ignore a
	  NULL psw for DeferExecution
	

1998-08-01  Maciej Stachowiak  <maciej@localhost.localdomain>

	* icons.c (CreateIconWindow): Check if psw->icon_pixmap_w is None
	before trying to set it's attributes.

	* window.c (force_icon_redraw): Check if psw->icon_w is None
	before destroying it.

1998-08-01  Maciej Stachowiak  <maciej@roc-ny3-12.ix.netcom.com>

	* miscprocs.c: Rename set-click-time! to set-click-delay! and
	X-server-set-synchronize! to set-X-server-synchronize!. Added some
	corresponding getters for setters that did not have them before:
	menu-mwm-style, title-justify, click-delay, title-height,
	click-delay, colormap-focus, smart-placement-is-really-smart?,
	click-to-focus-passes-click?, and click-to-focus-raises?.

Fri Jul 31 20:39:23 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c, resize.c, move.c, resize.h: Added ScwmWindow *,
	  fResize args to Keyboard_shortcuts so resize behaviour can be
	  smarter. Use width_inc, height_inc for keyboard resize

	* binding.c: Fix possible out-of-bounds array read access.

	* add_window.c: Move call to CassowaryNewWindow hook a bit
	  earlier, before the PlaceWindow call, since that call does a
	  move_finalize which needs the stay constraints to already be added

	* shutdown.c: Simplify Done() function and call SaveDesktopState
	  always (except for seg fault).

Fri Jul 31 18:42:23 1998  Greg Badros  <gjb@cs.washington.edu>

	* shutdown.c: Do the XSelectInput, XSync, and XCloseDisplay in all 
	  shutdown cases, not just if we're going to restart.

	* scwm-constraints.cc: Added note about intentional (for now)
	  memory leak

	* decorations.c: Guard an XFree with a test to ensure the pointer
	  is non-null (XFree, unlike ansi C's free, is not guaranteed to
	  deal with null pointers properly).

	* constraint-primitives.cc (ScwmResolve): Only move if not resized.

1998-07-31  Maciej Stachowiak  <maciej@roc-ny5-12.ix.netcom.com>

	* font.c, font.h, decor.c: Rename set-window-font! to
	set-title-font! for precision and to make clear that it does not
	affect a window object. Add title-font, icon-font and menu-font
	accessor functions.

1998-07-31  Maciej Stachowiak  <maciej@roc-ny3-12.ix.netcom.com>

	* events.c (send_button_press): Use the new
	FButtonToBnumModifiers, and take a single mouse button specifier
	argument, not an integer button number and integer modifier
	mask. Also make send_key_press pass the needed func_name argument
	for FKeyToKeysymModifiers.

	* binding.c, binding.h: Add new FButtonToBnumModifiers and
	add_binding functions and use them for better abstraction. Push
	error checking of contexts into compute_contexts. Change a few
	function signatures to pass a procedure name for the sake of error
	reporting. Much redundant code removed this way. No longer accept
	symbols in place of procedures in key/mouse bindings.
	
	* deskpage.c: API review continues: Split set-edge-wrap! into
	set-edge-x-wrap! and set-edge-y-wrap!; split set-edge-scroll! into
	set-edge-x-scroll!  and set-edge-y-scroll!; split
	set-edge-resistance! into set-edge-scroll-delay! and
	set-edge-move-threshold!. Added corresponding accessors:
	edge-x-wrap, edge-y-wrap, edge-x-scroll, edge-y-scroll,
	edge-scroll-delay, edge-move-threshold. Reordered the file so all
	getters are near their setters. Removed extraneous instances of
	SCM_REDEFER_INTS/SCM_REALLOW_INTS.

	* decor.c (s_window_decor): Fixed a minor typo.

1998-07-30  Maciej Stachowiak  <maciej@roc-ny3-12.ix.netcom.com>

	* decor.c: Make the window argument to `set-window-decor!'
	mandatory and first. Add the corresponding getter, `window-decor'.

	* color.c: API review: Added menu-foreground, menu-background,
	menu-stipple primitives w/ docs.	

	* window.h, window.c: Window structure changes, phase 1. Added
	other_properties member to window structure; GC protect it and
	initialize it to an empty hash table. Add set-window-property! and
	window-property primitives. Right now they only get and set
	properties in this hash table. "Magical" properties and change
	notification will come in later, as will other planned changes.
 
	ICCCM compliant gravity handling:
	
	* window.h: Define gravity_info type, used to encode gravity
	offset information. Add a grav field of type gravity_info to the
	window structure; remove the xdiff and ydiff fields. Prototype the
	new set_window_internal_title_height which should be used when
	changing the title height for a window, including adding or
	removing the title bar. Add GRAV_X_ADJUSTMENT and
	GRAV_Y_ADJUSTMENT macros to find the right amount the frame needs
	to be gravity-adjusted relative to a desired app window position.

	window.c: Remove window-diff-deltas, since xdiff and ydiff no
	longer exist. Add set_window_internal_title_height to adjust the
	window's title height safely, respecting gravity, and
	broadcasting. Fix show-titlebar, hide-titlebar, and
	set-border-width! to respect gravity.

	add_window.c: Remove SetupFrame call when adding window (moved to
	placement.c). Remove all mucking with xdiff and ydiff, they are
	gone.
	
	placement.c: Make GetGravityOffsets merely set the grav field of
	the window struct as appropriate instead of trying to return
	values. Move the table of gravity offset types to file static, not
	function static, and make it contain all three gravity_info
	fields. Remove CorrectPositionToStayOnscreen and all calls to it,
	it was pointless voodoo code anyway. Remove all move_finalize's
	intended to keep the window as requested; merely do nothing in
	those cases. in PlaceWindow, place the window exactly where
	requested, as adjusted by gravity, before calling the placement
	proc.

	util.c (redraw_titlebars): use set_window_internal_title_height to
	set the new titlebar height, not the previous weirdness.

	miscprocs.c (set_title_height_x): Reverse the sign sense of
	extra_height.

	font.c (set_window_font_x): Reverse the sign sense of extra_height.

	xmisc.c: Release the window by reversing the gravity adjustment
	currently in effect, not any of that xdiff/ydiff junk.

	To be resolved: should the user be able to get and/or set the
	window gravity?
	
Thu Jul 30 20:16:12 1998  Greg Badros  <gjb@cs.washington.edu>

	* constraint-primitives.cc, scwm-constraints.cc,
	scwm-constraints.h, scwm-screen-ci.hpp: Added Scr.Vx, Scr.Vy
	clvars, put stays on them, added CassowaryModifyOpaqueFlag

	* makefile.cassowary: Added scwm-screen-ci.hpp

Thu Jul 30 20:08:25 1998  Greg Badros  <gjb@cs.washington.edu>

	* virtual.h, virtual.c: Rename MoveViewport into
	MoveViewport_internal, and make MoveViewport muck with the
	constraint variables before calling MoveViewport_internal.

	* scwm.c: Call CassowaryInitClVarsInPscreen

	* resize.c, move.c: Use CassowaryModifyOpaqueFlag to ensure that
	we always do opaque moves and resizes w/ constraint solver; fixed
	bugs in moving of icon w/ rubberbanding

	* menu.c: Return the value of the called lambda for a menu item
	execution to support the select-window-from-window-list
	functionality. 

	* font.c: patch from Itani for I18N.

	* borders.c: Fix bug in corner_width too small when no title width 
	-- make corners be at least 12 pixels.

	* add_window.c: Add constraint dummies.

Wed Jul 29 20:23:03 1998  Greg Badros  <gjb@cs.washington.edu>

	* move.c, xmisc.c, font.c: Add a scope brace and use pxfs in
	  ComputeXTextWidth; use XFONTID in DisplayMessage.  use
	  XFIXEDFONTNAME, not XFIXEDFONTSET in font.c. All I18N
	  fixes.

	* face.c: Make set-face-flag! a primitive, reorder the function to 
	  avoid a prototype.

	* decorations.c: Don't turn off fBorder if boundary_width == 0;
	  keep them orthogonal

	* borders.h: Fix the FULL_HILITE enum value.  Fixes bug in the
	  redraw of the corners

	* borders.c: Clean up SetBorderX a bit.  Use SAFE_IMAGE in
	  DrawButton, and bail if we fail to get the image.

	* window.c: Fix docs of restack-windows

	* resize.c, virtual.c: remove one, and ifdef out another probably
	  spurious RemoveRubberbandOutline call. 
	
	* shutdown.c: Do not call0_hooks on a segfault.  Only do X stuff
	  if dpy is non-null

	* scwm.c: Use XmuPrintDefaultErrorMessage, if user has libXmu


Wed Jul 29 12:24:49 1998  Greg Badros  <gjb@cs.washington.edu>

	* util.c: Use idiomatic for loop for traversing ScwmWindow list,
	  fixed a bug and some redundant code.

	* font.c: Use scm_permanent_object, not scm_protect_object for
	  str_fixed, and others.

	* decor.c: Use UNSET_SCM instead of testing for equality with
	  SCM_UNDEFINED so #f counts as undef'd also.

Wed Jul 29 11:32:34 1998  Greg Badros  <gjb@cs.washington.edu>

	* scwm-constraints.hpp, scwm-constraints.cc, scwm.c, screen.h:
	  Added pssci field of struct ScreenInfo and initialize it to NULL

	* constraint-primitives.cc: Added accessors for screen-clv-vx,
	  screen-clv-vy.

	* borders.c, add_window.c: Remove the setting of title_height in
	  SetupFrame -- do it in AddWindow instead. 

	* makefile.cassowary: First go at a scwm_cl.static target.  Fails
	  because other libraries aren't statically linked.

	* scwm-screen-ci.hpp: Added, for ClVariables attached to scruct
	  ScreenInfo.

Mon Jul 27 20:45:24 1998  Greg Badros  <gjb@cs.washington.edu>

	* {move,resize,window,scwm-constraints}.c: Got resizing and moving 
	with rubberband to work using a more clean framework.

Mon Jul 27 20:08:39 1998  Greg Badros  <gjb@cs.washington.edu>

	* miscprocs.c, screen.h: Remove OpaqueMoveSize,
	set-opaque-move-size! primitive, since it's now an argument to
	interactive-move and interactive-resize

	* window.h, window.c:  Added SetScwmWindowPosition, and added
	fOpaque flag to both it and SetScwmWindowGeometry

	* scwm-constraints.h, scwm-constraints.c, add_window.c: Added
	fOpaque flag to SuggestSizeWindowTo and SuggestMoveWindowTo

	* resize.c: Display size in window units, not pixels

1998-07-27  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am: added move.x for interactive-move (was in window.x)

	* font.h, icons.c, events.c, drawmenu.c, decor.c, borders.c:
	  Cleanup the horrible I18N #ifdefs -- still more needs to be done
	  with XDrawString vs. XmbDrawString, but stuff is better
	  now. Added XFONTID to get at the ->fid field.

	* binding.c, binding.h: Moved GrabKeys, GrabButtons into here.
	  Fix bug with bind-mouse in not grabbing the new button (renamed
	  context to wincontext so future bugs [confusion of var context
	  with var contexts] will be more obvious).  Use for loops for
	  iterating the windows, not while loops.

	* add_window.h, add_window.c: Move Grab/Ungrab functions into
	  binding.c.  Pretty major cleanup and documenting of AddWindow
	  routine -- reduce redundancies, call XSaveContext right after
	  creating each window
	
	* xmisc.h, xmisc.c: Added WXGetPointerOffsets, WXGetPointerChild,
	  removed bogus XGetGeometryCacheIt since I found the bug that I
	  introduced that fn for.  Added SzExtractTextPropValue,
	  ComputeXTextWidth.  Renamed FXGetPointerWindowOffsets to
	  WXGetPointerWindowOffsets, and have it return the child window
	  (Changes throughout all source to use WXGetPointerWindowOffsets)

	* window.h: document more ScwmWindow fields

	* move.c, window.c: moved interactive_move into move.c from
	  window.c;  added primitives: icon-position and
	  window-diff-deltas

	* scwm.h: comment out FFromSCMBool, FInvertFromSCMBool since
	  gh_scm2bool exists.  Added
	  COPY_BOOL_OR_ERROR_DEFAULT_{TRUE,FALSE}.  Drop externs of Window 
	  BlackoutWin.

	* scwm.c: Call init_move, move JunkVars into xmisc.c

	* scwm-constraints.h: Added FRAME_X_NONVIRT, FRAME_Y_NONVIRT (stll 
	  need to be used far more often to make viewport stuff work)

	* resize.h, resize.c:  Added InteractiveResize, and make that in
	  the public interface, instead of interactive_resize (which now
	  mostly just calls the former).  Added fOpaque flag to
	  InteractiveResize, option to interactive_resize primitive.

	* move.h, move.c: Added fOpaque flag to InteractiveMove, option to 
	  interactive_move primitive; fixed bugs in dealing with icons,
	  move ComputeXTextWidth into xmisc.c, and make it take an extra
	  arg, the length, or -1 to mean use strlen.  Move
	  interactive-move primitive to here from window.c, and make
	  move.x get generated.

	* placement.c: save frame position in xdiff, ydiff using
	  FRAME_X_NONVIRT, Y_NONVIRT
	
	* miscprocs.c: Added X-server-set-synchronize primitive

	
1998-07-27  Robert Bihlmeyer  <e9426626@stud2.tuwien.ac.at>

	* xproperty.c: Forgotten inclusion of guile-compat.h prevented
	1.2-compatibility.

1998-07-26  Greg Badros  <gjb@cs.washington.edu>

	* window.h, window.c:  Remove the SMOB functions from window.h.
	  Added MoveTo, ResizeTo, MoveResizeTo, and use them instead of
	  SetupFrame most places throughout scwm.  Move move_finalize,
	  MovePswToCurrentPosition, ResizePswToCurrentSize up
	  earlier in window.c, and document them all (see code).

	* virtual.c: Use MoveTo, not SetupFrame.

	* placement.c: Rename keep_on_screen to
	  CorrectPositionToStayOnscreen, since it doesn't actually move a
	  window, it just fiddles with coords.

	* move.c: Fix animated window shade to not require a redundant
	  SetupFrame call.

	* icons.c: Use move_finalize instead of SetupFrame.

	* events.c: Use MoveResizeTo, ResizeTo instead of SetupFrame.  I
	  think lots of redundant M_CONFIGURE_WINDOW fvwm2 module packets
	  are sent out! FIXGJB

	* decor.c: Use ResizeTo instead of SetupFrame.  There is an extra
	  distinction that should probably be made between calls that
	  change the decorations and thus affect the overall frame size
	  and calls that are intended to resize the client window (the
	  latter involves the client application, but both involve the
	  constraint solver)

	* dbug_resize.h: Generalize for non gcc compilers like DBUG is.

	* borders.c: Fix some bugs in window shading, be a bit more
	  careful about X11 calls, and comment SetupFrame more
	  thoroughly.

1998-07-26  Greg Badros  <gjb@cs.washington.edu>

	* resize.c, resize.h, scwm.c: Added init_resize_gcs() and call it
	  after the X11 stuff has been initialized

1998-07-26  Greg Badros  <gjb@cs.washington.edu>

	* Pretty massive cleanup of interfaces.  Removed unneeded
	  prototypes from header files -- in particular the primitives
	  are no longer exposed in the header files unless they are used
	  directly by C code (such instances are marked as encapsulation
	  violations to be cleaned up at some point).  Also, use
	  window_fwd.h instead of including window.h, where possible.
	  Note that the init_MODULE function prototypes for SMOBs are
	  all put in scm_init_funcs.h by the build procedure, so they
	  are no longer listed in the .h files.  In particular, this
	  means that some header files are nearly empty, but I've chosen 
	  to keep them around since at some point a public C interface
	  may be added for them.  Sometimes macros that were in the
	  header file have been moved into the top of the .c file if
	  they are just implementation details hiding behind the public
	  interface of the module.  Also note that the mark_, print_,
	  free_ functions are no longer prototyped-- they hide behind
	  init_XXXX's registering of the SMOB type.

	* window.c: rearrange ordering of some funcs to avoid forward
	  decls.

	* placement.c: use move_finalize instead of move_to-- the former 
	  is part of the C interface of ScwmWindows, while the latter is 
	  a primitive that does unnecessary work;  Also use
	  InteractiveMove instead of interactive-move for the same
	  reason.

	* move.h, move.c: Simplify interface to InteractiveMove, and
	  make it know all about finding the button-click mouse position 
	  and dealing with icons (moved the code from the one call to
	  InteractiveMove into the function, and then added another call 
	  to InteractiveMove from placement.c)

	* events.c: Use Iconify (C public-interface function) instead of
	  iconify (primitive)

	* binding.c: have_orig_position is now a Bool, not an int

	* window_fwd.h: Added, for use by header files that only need
	  pointers to the ScwmWindow struct (must use struct ScwmWindow, 
	  or "#define ScwmWindow  struct ScwmWindow" -- be sure to
	  #undef at end of header file

1998-07-26  Greg Badros  <gjb@cs.washington.edu>

	* screen.h: Pruned and cleaned up the ScreenInfo struct a lot.
	  MyDisplayXXX is now DisplayXXX -- Fixed uses of DisplayXXXX
	  throughout;  use PackedBool macro and expand flags bitmasked
	  field, so Scr.flags & WindowsCaptured is now just
	  Scr.fWindowsCaptured [dropped the #defines of the flag
	  constants]; made GET_DECOR look more like a macro since it can't 
	  be used much like a function at all; drop CornerWidth, NumBoxes
	  fields -- unused;  drop COLORMAP_FOLLOWS_MOUSE,
	  COLORMAP_FOLLOWS_FOCUS #defines, and use fColormapFollowsMouse
	  boolean instead.

	* miscprocs.c, deskpage.c: simplify s_set_menu_mwm_style_x, other
	  settors to use COPY_BOOL_OR_ERROR

	* color.c: #ifdef out first of multiple calls to SetBorder to see
	  if there is any crazy (undocumented) reason why multiple calls
	  are needed

	* borders.h: drop redundant prototype for SetTitleBar()

	* events.c: added some debug code to test a claim in a comment
	  regarding when to raise a window when !Scr.fClickToFocusRaises

	* miscprocs.c, resize.c: move set_rubber_band_mask_x from
	  miscprocs.c into resize.c, and initialize DrawRubberBandGC in
	  init_resize()

	* placement.c: clean up SmartPlacement a bit

	* util.c: clean up redraw_titlebars

	* borders.c: Added init_border to initialize TransMaskGC, now
	  file-static (not really the right thing, is it that expensive to 
	  create GCs that we don't want to do it for each button draw?),
	  use GET_DECOR (renamed from GetDecor to be more obviously a macro)

	* shutdown.c: improve startup-hook documentation

	* scwm.h, window.h: Moved PackedBool here from window.h, moved
	  COPY_BOOL_OR_ERROR and COPY_INVERT_BOOL_OR_ERROR from window.h,
	  since these are now used in more places than just window.c;
	  struct ScwmWindow -- drop orig_x, orig_y -- just
	  orig_{width,height} now.  Drop CORNER_WIDTH macro -- unused.

	* window.c: Don't call SetupFrame on animated shade/unshade --
	  only do it on unanimated.
	
1998-07-25  Greg Badros  <gjb@cs.washington.edu>

	* *.c: mark_XXXXX -- use GC_MARK_SCM_IF_SET pervasively, instead
	  of scm_gc_mark (just in case something is not initialized)

	* *.c: use new SCWM_SYMBOL macros pervasively

	* callbacks.c: doc string spelling fix, drop a FIXDOC since the
	  extractor now gets HOOK comments

	* constraint-primitives.cc: Use a set, not a list for the dirty
	  windows.  Better debug support on ScwmResolve.  Clear the set of 
	  dirty windows when there is a new master solver.  Added doc strings

	* decor.c: Docstring edit

	* drawmmenu.c: Move RelieveRectangle into xmisc.c
	
	* events.c: Use new ConstrainSize() args; better debugging for
	  HandleConfigureRequest()
	
	* face.c: doc string changes

	* makefile.cassowary: rebuild extratags when TAGS changes
	
	* module-interface.c: Doc comment fixes

	* move.h, move.c: Added MapMessageWindow(), UnmapMessageWindow();
	  clean up some I18N support and added a ComputeTextWidth function 
	  (FIXGJB: maybe this should go in xmisc.c?);  Improve
	  DisplayMessage;  Use move_size of 10 in Keyboard_shortcuts()
	  instead of menu entry height (which was completely broken
	  anyway, and I removed Scr.EntryHeight from the struct
	  ScreenInfo in screen.h

	* placement.c: typographical changes -- I hate spaces between
	  function name and parameter list! :-)
	
	* resize.h, resize.c: Better encapsulate ConstrainSize, resizing: drop all
	  the file-static variables that manage the resize operation.
	  Added opaque resizing, dropped DoResize (and with it the
	  rubberband -- I'll bring the rubberband back, soon, as I imagine 
	  people w/ slower machines [like me at home] want this);  Got
	  resizing working with Cassowary; Added
	  ComputeNewGeometryOnResize to enclose the constrain size stuff;
	  further improve CreateMessageWindow.

	* scwm-snarf.h: Added SCWM_SYMBOL, SCWM_GLOBAL_SYMBOL macros which 
	  currently just pass along to SCM_??_SYMBOL macros

	* screen.h: Rename SizeWindow -> MsgWindow.  Drop SizStringWidth
	  and EntryHeight since these are no longer used

	* scwm-constraints.h, scwm-constraints.c: Added x,y args to
	  SuggestSizeWindowTo since resizing to the left involves moving,
	  too.  Call AddSizeConstraints on a new window;  make
	  SuggestMoveWindowTo check to make sure the window really moved
	  before calling XMoveWindow.
	
	* scwm-constraints.hpp: Added AddSizeConstraints(); make
	  CopyStateToPswVars return two bools, fMoved, fResized; better
	  debugging -- added a _name member to SWCI
	
	* scwm.c: reorder some initialization stuff to be a bit safer,
	  drop last arg from CreateMessageWindow since MWMMenus flag was
	  unused by it
	
	* xmisc.c, xmisc.h: Added FXGetWindowSize, RelieveRectangle (move
	  from drawmenu.c, since the message window needed the code)

	* window.h, window.c: Added SetScwmWindowGeometry to resize and
	  move a window properly.  Added select-window-interactively
	  (takes a prompt), generalize the size and pointer window into a
	  message window, and rename appropriately.
	
	* dbug_resize.h: Added for tracing the resize operations

1998-07-24  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am: Added screen.c, screen.x

	* face.c: Fix the layout of the Face Specification flags concept

	* move.c, scwm.c (InitVariables): Use msg_window_* not size_window_*

	* screen.c: Rename size_window_* fields to msg_window_*

	* constraint-primitives.cc: Added ResizePswToCurrentSize

	* scwm.c: Added scmScreen object, and initialize it to be the SMOB 
	for the global Scr. Init Scr.size_window_{fg,bg}. Call
	init_screen. Use new name CreateMessageWindow() not
	CreateSizeDisplayWindow().  
	
	* color.h: Added SAFE_XCOLOR_OR_{WHITE,BLACK} macros

	* icons.c, borders.c, borders.h, drawmenu.c: use SetGCFg, new
 	version of NewFontAndColor that takes a GC as the first argument.

	* resize.c, move.c: Rename CreateSizeDisplayWindow to
	CreateMessageWindow, and rewrite DisplaySize and DisplayPosition
	to use new DisplayMessage() that just puts a string in the window.

	* xmisc.c (SetGCColors): Added, along with SetGCFg, SetGCBg

	* window.c (ResizePswToCurrentSize): Added this function

	* screen.c: Wrap ScreenInfo in a SMOB so marking of the SCM member 
	fields works (this was a long-time latent bug)

1998-07-23  Greg Badros  <gjb@cs.washington.edu>

	* xproperty.c: Add parens to disambiguate (a>>2+1) [(a>>2)+1]

	* xmisc.h: include X11/Xlib.h

	* window.[ch]: remove unused vars, use cassowary interface on move-to 
	primitive, eliminate the move_finalize -- it seems unnecessary,
	move interactive_resize into resize.c

	* virtual.c: Added prototype for RemoveRubberbandOutline(), remove 
	MoveOutline proto

	* shutdown.h: Added missing prototype for run_startup_hook

	* shutdown.c: Replace dead assignment which forced the core dump
	with a function call so we're sure that the code doesn't get
	optimized away through dead code elimination.

	* scwm.c: Re-checked all the header dependencies. Moved CreateGCs
	here, added call to init_resize, move out the code that creates
	the size & position display window to CreateSizeDisplayWindow function

	* scwm-constraints.hpp: Added return type for AddStays.

	* scwm-constraints.{cc,h}: Added CassowaryEditSize(),
	SuggestSizeWindowTo(), and rename CassowaryEndEditPosition() to
	just CassowaryEEndEdit().

	* screen.h: Added size_window_{font,fg,bg} for controlling the
	size and position window (shown during interactive moves)

	* resize.[ch]: modularize better -- make globals file static
	instead. move interactive_resize primitive here, and add
	resize.x.  Added CreateSizeDisplayWindow(), added primitive
	set-size-and-pos-window-attributes.  Factor out
	InitializeOutlineRects() and use it

	* placement.c: Removed massive #if 0 from Maciej's rewrite -- it
	was too long, and is in the repo anyway.

	* move.[ch]: Added abstraction MapSizePositionWindow(), drop
	fAddWindow parameter from moveLoop, and document it better, added
	RedrawOutlineAtNewPosition() and RemoveRubberbandOutline()
	functions to make code more clear, and clean up moveLop fn.  Use
	Scr.size_window_font for DisplayPosition() fn.  Clean up InteractiveMove()

	* module-interface.h: Added missing prototype for BroadcastMiniIcon

	* miscprocs.c: Added scwm-path-prefix and scwm-path-exec-prefix

	* makefile.cassowary: Added extratags target so that cassowary
	source files get tags built, too

	* font.[ch]: Make str_fixed global. Clean up menu_font_update so it
	does not mess with the size/position window

	* menuitem.c, draw-menu.[ch], draw-pie-menu.c: Rename scwmmenu.h for inclusion

	* constraint-primitives.cc: Use a list, not a vector for
	rgpswDirty, use DBUG, not scwm_msg for independent variables.

	* colors.c, colors.h: Move CreateGCs() into scwm.c, since it is an
	initialization routine

	* xmisc.c, icons.c, decor.c, callbacks.c, borders.c: Fix warnings, clean
 	comments, remove unused vars

	* add_window.c: Added add_window.x, remove unused vars, give
	simple SuggestSizeWindowTo function for non-cassowary code

	* Makefile.am (scwmpaths.h): Added writing of SCWM_PREFIX and
	SCWM_EXEC_PREFIX #defines.

	* Makefile.am: Added scm_init_func.h target, using new script
	generate_scm_init_funcs.  Alphabetize scwm_SOURCES var.  Separate
	out guile_snarfs from BUILT_SOURCES.  Update for scwmmenu->menu
	name change. Added add_window.x, resize.x.

	* generate_scm_init_funcs: Added this script to be used by the
	makefile for generating the new scm_init_funcs.h file, included by 
	scwm.c to declare protoes for all the init_MODULE functions so we
	do not *have* to include header files for just those functions.

	* menu.c, menu.h: Renamed from scwmmenu.c, scwmmenu.h for
	consistency, so new scm_init_funcs.h works as it should (declaring 
	the prototypes for all the init_MODULE functions)

	* menuitem.c, scwmmenu.c, xproperty.c (mark_XXXX): Don't guard
	marking subobjects with if (SCM_GC8MARKP(XX)) since the parent
	object will already be marked in newer snapshots of guile.

1998-07-23  Maciej Stachowiak  <maciej@roc-ny1-20.ix.netcom.com>

	* callbacks.c: Replace "Timer" with "Input" in the input hook
	concept documentation (whoops).
	
1998-07-22  Greg Badros  <gjb@cs.washington.edu>

	* events.c (HandleScwmExec): Fixed a couple little problems that
	may not have immediately been show stoppers -- now last_offset += 
	(nitems * (form_ret/8)).  Also added more troubleshooting code so
	that it doesn't just fail silently, and point  at
	doc/scwmexec.proto as additional documentation.  Added
	reset-scwmexec-protocol primitive as a just-in-case to avoid
	restarting X server.

	* *.c: Fixed purpose strings (one line sentences
 	at start of procedures), corrected spelling mistakes

1998-07-21  Maciej Stachowiak  <maciej@roc-ny3-18.ix.netcom.com>

	* events.c (HandleScwmExec): Examined this function. I could not
	find a problem, but added many explanatory comments.

1998-07-21  Greg Badros  <gjb@cs.washington.edu>

	* scwm-constraints.h: Update proto for
	CassowarySetCValuesAndSolve, add proto for CassowaryNewWindow

	* scwm-constraints.cc: Add extra arg to
	CassowarySetCValuesAndSolve, honour it, and also don't call
	resolve and endEdit() if there are no editVars (i.e., no changes
	to the window's position or size)

	* miscprocs.c: Add period to docstring

	* placement.c, borders.c: Send extra arg to 
	CassowarySetCValuesAndSolve.

	* add_window.c: Added second param to CassowarySetCValuesAndSolve, 
	a bool to tell whether should solve (or just set the values).
	Added CassowaryNewWindow hook to permit adding the stay
	constraints in at the right time.

	* window.c, window.h: Add COPY_BOOL_OR_ERROR and
	COPY_INVERT_BOOL_OR_ERROR macro, and use throughout for error
	checking in primitives that do simple assignment of a boolean to a 
	C variable (simplifies a bunch of primitives)
	
	* miscprocs.c: Fix misuse of flag formal in
	set_smart_placement_is_really_smart_x

	* binding.c, miscprocs.c: fix mismatches between c func name and
	primitive name, as warning by extract-docs

	* module-interface.c: quote "M_ICONIFY" in the comment docstring
	since it is not an argument.

	* miscprocs.c, scwmmenu.c, scwm.c, xproperty.c: document arguments
 	that weren't documented before (extract-docs now warns about these
 	cases)

	* window.c: Added FUNC_NAME to the window-icon-title primitive;
	be sure to use FUNC_NAME pervasively -- extract-docs will warn if
	it's missing

Tue Jul 21 15:01:46 1998  Greg Badros  <gjb@cs.washington.edu>

	* constraint-primitives.cc: Remove the obsoleted hard-coded sample
	constraint-creation primitives, keep-to-left-of and
	keep-tops-even, since that can now be done from scheme more generally.

1998-07-21  Maciej Stachowiak  <maciej@roc-ny4-02.ix.netcom.com>

	* shutdown.c, shutdown.h: Added startup-hook and
	run_startup_hook() function. This is probably not the right place
	for it, but I can't think of a better one at the moment; I don't
	want to start a new file or clutter up scwm.c any further.

	scwm.c: Call run_startup_hook() after all windows are captured.
	
Tue Jul 21 14:09:11 1998  Greg Badros  <gjb@cs.washington.edu>

	* constraint-primitives.cc: Added window-clv-{x,y,width,height} to 
	get at the constraint variable objects.  Don't call addVar in the
	obsoleted functions-- it's redundant with using the
	add-stays-on-window primitive.

	* scwm-constraints.hpp: Added scheme objects to hold the
	ClVariable-s attached to the window.

	* scwm.c: Use protos for the two cassowary functions I need,
	instead of including whole header files

Tue Jul 21 10:38:35 1998  Greg Badros  <gjb@cs.washington.edu>

	* scwm-constraints.hpp: Add psolver argument to AddStays, add
	Psw() memfn, CopyStateToPswVars() memfn

	* scwm-constraints.cc: guard everything with if (!psolver), and do 
	a regular move window in SuggestMoveWindowTo if !psolver, since if 
	there is a psolver, its callbacks result in moving the window

	* constraint-primitives.h: extern "C" sandwich

	* constraint-primitives.cc: extern "C" protect inclusions of
	scwm-proper files scwm.h, window.h.  Added ScwmClvChanged and
	ScwmResolve callbacks, to manage the new rgpswDirty container so
	windows only move once when any of their settings change.  Set the 
	callbacks in scwm_set_master_solver

Tue Jul 21 10:30:43 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c (MovePswToCurrentPosition): Make ScwmWindow * a const
	ScwmWindow.

1998-07-20  Maciej Stachowiak  <maciej@roc-ny5-21.ix.netcom.com>

	* callbacks.c (run_input_hooks): Make sure port is still open
	before checking if it has characters ready. I could have sworn I
	made this change already (it is definitely there for
	force_new_input_hooks). Am I on crack, or did it somehow get
	reverted?

1998-07-20  Maciej Stachowiak  <maciej@localhost.localdomain>

	* add_window.c (AddWindow): Removed pointless debugging message.

	* module-interface.c (marshal_fvwm2_iconify_info): Added new
	primitive `marshal-fvwm2-iconify-info'. This procedure constructs
	the contents of an M_ICONIFY fvwm module packet for WIN and
	returns it as a Scheme string.

	* add_window.c, window.c: Use the new BroadcastMiniIcon

	* module-interface.c (BroadcastMiniIcon): Added BroadcastMiniIcon
	and a broadcast-mini-icon-hook. I've simplified it to only take
	(and pass) the window structure; I figure Scheme code can do the
	marshalling out of that.
	
	* image.c (image_properties): Added 'pixmap and 'mask properties
	to image-properties return value. These are needed for the
	fvwm-module stuff, and could be useful for communicating with
	other X programs as well.

	* color.c (hilight_foreground, hilight_background): New primitives
	hilight-foreground and hilight-background which get the foreground
	and background colors in the current decor. Needed for fvwm-module
	stuff, and probably generally useful.

	* window.c (window_icon_title, window_icon, window_mini_icon):
	Added new primitives window-icon-title, window-icon and
	window-mini-icon to get the icon title, icon image and mini-icon
	of a window respectively. Needed for fvwm-module stuff, and
	probably generally useful.
	
Mon Jul 20 18:03:11 1998  Greg Badros  <gjb@cs.washington.edu>

	* scwm-constraints.cc, constraint-primitives.cc: renamed from .c,
	since they are C++ code

	* Makefile.am: removed the above files, and
	constraint-primitives.x from mention

	* makefile.cassowary: added -- use `make -f makefile.cassowary
	scwm_cl' to build after running configure with
	--with-cassowary=/path/to/cassowary

	* scwm-constraints.hpp: added -- the c++ header file for
	scwm-constraints.cc; this gets included by
	constraints-primitives.cc, but not by the rest of scwm.

	* utilities/dev/extract-docs: improved, added more warnings --
	you should run extract-docs on your souce files from now on to at
	least get warnings (some very useful for diagnosing problems with
	the source code, not just the comments)

	* window.h: go back to simply embedding frame_{x,y,width,height},
	but add a pointer to an opaque ScwmWindowConstraintInfo
	unconditionally (this will be replaced by whatever window
	extension mechanism comes into existence)

	* scwm.c: do not define a global solver object

	* scwm-constraints.h: Do not use ScwmClVariables any longer --
	simplify accessing cassowary from scwm into a simple interface and 
	stub those functions.  #define SET_CVALUE for use when assigning
	values to constrained vars (vars which are shadowed by
	constrained variables)

	* window.c, add_window.c, borders.c placement.c, move.c: use the
 	new cleaner interface from scwm-constraints.h -- reduces #ifdef
 	USE_CASSOWARY a lot!  add_window.c has the empty stubs for the
 	prototypes that may be turned into real hooks later.
	
	* system.h: do not use new and delete unless __cplusplus is
	defined and USE_CASSOWARY is defined (nothing uses this now)

	* image.c: fix a warning due to a constness bug in guile

Mon Jul 20 15:03:39 1998  Greg Badros  <gjb@cs.washington.edu>

	* events.c (HandleScwmExec): Fixed long-time probable bug that I
	just noticed for the first time-- last_offset was being increased
	by last_offset+1, instead of just being incremented.  I'm not sure 
	of the purpose of the loop, or of the protocol in general, but the 
	code looked wrong, and my fix gets things working for me again.

Mon Jul 20 14:24:13 1998  Greg Badros  <gjb@cs.washington.edu>

	* binding.c, color.c, deskpage.c, image.c, miscprocs.c,
 	scwmmenu.c: Update some comments based on warnings reported by new
 	additions to extract-docs.  All unquoted all-caps words should
 	refer to arguments -- I change NOTE: to Note: or to a FIXGJB,
 	FIXMS comment -- the latter still produce warnings in
 	extract-comments, but it's a good thing!

	
	* scwm.c: Move InitVariables() and InternUsefulAtoms() up to the
 	top, and remove their prototypes.  Inline SetRCDefaults() since it
 	was short and not a useful abstraction.  Move MappedNotOverride()
 	to before CapturaAllWindows(), and make it static.  Move
 	LoadDefaultLeftButton, LoadDefaultRightButton, LoadDefaultButton,
 	ResetAllButtons into face.c.  Move DestroyScwmWindow,
 	InitScwmDecor into decor.c

	* face.c: Moved Button faces into here from scwm.c (see above)

	* decor.c: Moved fns from scwm.c into here & made static.
	
	* screen.h: remove some obsoleted prototypes.


Mon Jul 20 13:43:51 1998  Greg Badros  <gjb@cs.washington.edu>

	* *.c, *.h: Replace _XA_ atom names with XA_ atom names, since
 	_UPPERCASE is res'd for impl.

	* *.c: Use #define FUNC_NAME, #undef FUNC_NAME to bracket
 	primitives, and use FUNC_NAME within the primitive -- error
 	handling code gets cut and pasted a lot, and an
 	incorrectly-specified function name could be really annoying to
 	track down.  extract-docs checks the #define -- we could automate
 	instead, but that would slow compile times more, and require an
 	extra build step

	* Fixed a couple of doc strings that were mis-commented, added a
	couple for primitives that were missing doc strings

	* window.c (print_window): Print the windows name along with its id.

1998-07-20  Maciej Stachowiak  <maciej@localhost.localdomain>

	* add_window.c (AddWindow): Add an explanatory comment.

	* window.c (set_icon_x): Broadcast the new icon filename.

Sun Jul 19 14:18:48 1998  Greg Badros  <gjb@cs.washington.edu>

	* xproperty.c, window.c, scwmmenu.c, image.c, font.c, color.c,
	xproperty.c:  use MAKE_SMOBFUNS and REGISTER_SCWMSMOBFUNS macros.
	Move the registration of the smob to *before* and of the objects
	are created (these were lurking bugs)

	* decor.h, decor.c: fix bugs in mark_decor -- was marking
	not-yet-constructed objects (maybe this is a missing
	SCM_DEFER_INTS, but this fix works and is safer)
	
	* scwm.h: make GC_MARK_SCM_IF_SET also check for scm == 0 and not
	mark that

1998-07-19  Maciej Stachowiak  <maciej@localhost.localdomain>

	* xproperty.c: Documented all concepts and primitives.

	* window.c: Documented all primitives, concepts and hook. Ouch!

	* shutdown.c: Documented all primitives and hooks.

1998-07-18  Maciej Stachowiak  <maciej@localhost.localdomain>

	* module-interface.c: Documented all primitives and hooks.

	* miscprocs.c: Documented all primitives.

	* image.c: Documented all primitives, concepts and variables. Did
	not document image-not-found-hook; it should be changed to a
	proper hook, and possibly eliminated as it is somewhat redundant
	with error-hook. Or else there should be a warning-hook that it
	should be redundant with.

	* font.c: Documented all primitives and concepts.

	* face.c: Documented all primitives, hooks and
	concepts. 
	
	* events.c: Documented all primitives, hooks and
	concepts. Continuing the FXDOC convention.

	* callbacks.c: Use FIXDOC comments to indicate changes that I
	think are needed for the docstring comment format, or things I
	don't know about it yet.
	
Sat Jul 18 16:26:11 1998  Greg Badros  <gjb@cs.washington.edu>

	* scmtypes.h, scmtypes.c: Removed -- now individual init functions do the
	right thing
	
	* window.c, scwmmenu.c, menuitem.c, face.c, decor.c: Add smob type 
	initialization code using the below macros to obviate the need for 
	scmtypes.{h,c}

	* scwm.h: Added MAKE_SMBFUNS and REGISTER_SCWMSMOBFUNS macros that 
	should be used more consistently

	* scwm.c: Remove call to init_scwm_types, don't include scmtypes.h 
	any longer

Sat Jul 18 11:15:59 1998  Greg Badros  <gjb@cs.washington.edu>

	* *.c, *.h: Use #ifdef HAVE_CONFIG_H to guard #include config.h,
	and use those three lines pervasively (most header files were
	missing the #includes-- can be a subtle bug if you're not on your
	toes [I was caught flat-footed this past week]).
	
	* decor.c, events.c, module-interface.c, placement.c, window.c,
 	window.h, xproperty.c: Replaced all uses of SCWMWINDOW macro with
 	PSWFROMSCMWIN since that is a less ambiguous name, and makes more
 	sense given the pervasive use of the psw tag througout.  Commented
 	out SCWMWINDOW macro definition so it can be used no longer.

1998-07-18  Maciej Stachowiak  <maciej@roc-ny2-05.ix.netcom.com>

	* add_window.c: Documented all hooks.

	* deskpage.c: Documented all primitives and concepts.

1998-07-17  Maciej Stachowiak  <maciej@roc-ny3-16.ix.netcom.com>

	* decor.c: Documented all primitives and concepts.

	* color.c: Documented all primitives and concepts.

	* callbacks.c: Documented all primitives, hooks and concepts.

Fri Jul 17 18:46:18 1998  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am, scwm-constraints.c: Added scwm_constraints.c

	* scwm-constraints.h: Added more functional ScwmClVariable, with
	pointer to enclosing _psw

	* window.h, window.c (MovePswToCurrentPosition): Added; made move_finalize static.

	* constraint-primitives.c: add keep_to_left_of,
	add_stays_on_window primitives, better debugging

	* add_window.c (AddWindow): attach ScwmClVariable-s to the psw w/ set_psw

	* move.c (moveLoop): Use cassowary's beginEdit, resolve, endEdit construct

Fri Jul 17 13:33:17 1998  Greg Badros  <gjb@cs.washington.edu>

	* all-files: Eliminate #includes of misc.h (gone), and system.h
	(#included by scwm.h now);  add #includes of other headers as now needed

	* borders.h: Move HILITE macros here, and turn them into an enum
	
	* xmisc.c, xmisc.h: XGetPointerWindowOffsets renamed ->
	FXGetPointerWindowOffsets, XGetWindowTopLeft renamed ->
	FXGetWindowTopLeft
	
	* misc.c, misc.h: Removed; functions dispersed as appropriate,
	often into xmisc.c

	* Makefile.am: updated to reflect removal of misc.c, misc.h and
	rename of constraint-primitives.cc -> .c

Thu Jul 16 16:19:38 1998  Greg Badros  <gjb@cs.washington.edu>

	* module-interface.c, xmisc.c, constraints.h: include <config.h>

	* constraint-primitives.c: return SCM_UNSPECIFIED

	* add_window.c (AddWindow): Better constraints debugging support
	-- give the variables a reasonable name

	* menuitem.c, scwmmenu.c: Use SCM_UNDEFINED to end gh_list call

	* window.c (DestroyScwmWindow): Fix memory leak -- XFree is now
	called on psw->name before deallocating psw.

	* binding.c (FKeyToKeysymModifiers): Fix bug in handling of
	uppercase single keystrokes (e.g., C-M-S-E) -- the keysym that was 
	looked for was the uppercase keystroke, which isn't bound to any
	key -- use tolower to convert.

1998-07-16  Greg Badros  <gjb@cs.washington.edu>

	* all: Use FREE and NEW instead of free and malloc, use FREEC
	and NEWC for free and new w/ counts of objects (for arrays), and use
	FREECPP and NEWCPP and FREECPPC and NEWCPPC for C++ style memory
	allocations w/ ctr invocations.  Fix some bugs by the removal of the
	cast of old malloc calls' return values.


	* all: Use FRAME_{X,Y,HEIGHT,WIDTH} macros to access the rvalue of the
	window geometry -- does the right thing based on USE_CASSOWARY

	* system.c: Make safemalloc really call calloc

	* system.h: Define new memory management macros
	FREE,NEW,FREEC,NEWC,FREECPP,NEWCPP,FREECPPC,NEWCPPC

	* window.h: Use ScwmClVariable's for frame_{x,y,width,height}, added
	PSWFROMWIN macro

	* icons.c, placement.c, util.c, virtual.c, window.c: Rename some temporaries to psw

	* scwm.c: add global solver variable.

	* borders.h, borders.c: Added two new args to SetupFrame, and define
	bool constants WAS_MOVED,NOT_MOVED, WAS_RESIZED,NOT_RESIZED to set them

	* Fix a couple of memory leaks

1998-07-16  Maciej Stachowiak  <maciej@roc-ny5-44.ix.netcom.com>

	* add_window.c (AddWindow): Replace a call to ResetAllFlags with
	ResetCommonFlags to avoid clobbering the fTransient bit (and
	probably other stuff). D'oh!

1998-07-15  Maciej Stachowiak  <maciej@roc-ny2-12.ix.netcom.com>

	* placement.c (PlaceWindow): Use user-defined placement
	functions. In particular, if the window is transient, use the
	'transient-placement-proc object property, if not, use the
	'placement-proc property. If the appropriate property is not set,
	use default_transient_placement_proc or default_placement_proc
	which do what scwm used to do, i.e. what fvwm2 would do. Gravity
	is not properly respected at all now, regardless of the border
	width, but I know how to fix this. Will do so soon. There is a
	separate property for transient window placement, because it is
	almost always desirable to place transient windows according to a
	different algorithm than regular top-level windows. In particular,
	ICCCM reccomends that transient windows always be placed exactly
	where requested by the program, without user interaction. Users
	will rarely want to override this behavior.
	
	(default_select_desk): Separated out desk selection into this new
	procedure to make PlaceWindow easier to understand. However, desk
	selection and switching should not happen here, but should
	ultimately be done in the placement functions (as should possible
	viewport selection). This needs to be fixed.

	(smart_place_window, clever_place_window, random_place_window,
	default_placement_proc, default_transient_placement_proc): New
	Scheme primitives for use as window placement functions:
	`smart-place-window', `clever-place-window',
	`random-place-window', `default-placement-proc' and
	`default-transient-placement-proc'. Each of these takes a single
	window argument. `smart-place-window' has the effect of fvwm's
	SmartPlacement with SmartPlacementIsReallySmart off;
	clever-place-window has that effect as if
	SmartPlacementIsReallySmart were on. random-place-window

	Other Scheme-level procedures which may be useful in user-defined
	placement procedures include `ineractive-move', `move-to' and
	`interactive-resize'. Each of these should work properly.

	(init_placement): Initialize the placement module.
	
	* placement.h: Prototype init_placement().

	* Makefile.am: build placement.x

	* scwm.c (scwm_main): Initialize the placement module.

	* window.c (window_transient_for): New Scheme primitive
	`window-transient-for'. This takes a single window argument WIN
	which defaults to the window context in the usual way. If WIN is
	transient, and the window it is transient for is not the root
	window and is being managed by scwm, return the window object of
	the window that WIN is transient for, otherwise return #f.
	
	* miscprocs.c (capturing_p): Added a Scheme primitive `capturing?'
	that determines whether or not we are currently intially capturing
	or recapturing the windows (via the poorly name PPositionOverride
	global variable). When this is true, it is desirable to avoid user
	interaction or other black magic when placing windows.

	* add_window.c (AddWindow): Call PlaceWindow much later, after the
	frame and all attendant windows have already been set up.

Tue Jul 14 16:24:19 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* scwm.c (scwm_main): Make sure scwm initialization happens in the
 	root module rather than the new (user) module, to work around a
 	bug in scm_sysintern. Thanks to Mikael Djurfeldt
 	<mdj@nada.kth.se>.

1998-07-13  Maciej Stachowiak  <maciej@roc-ny5-15.ix.netcom.com>

	* syscompat.h: Remove extraneous semicolons.

	* guile-compat.h: If the 3-argument version of scm_make_vector is
	in effect, define a macro that defines the 2-arg version in terms
	of the 3-arg.

	font.c, color.c, image.c: Use the 2-arg version of scm_make_vector
	always.
	
Mon Jul 13 15:20:11 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* callbacks.c: Use limits.h and LONG_MAX instead of values.h and
 	MAXLONG; as Perry E. Metzger <perry@piermont.com> reported, this
 	is the POSIX way of doing things, and thus more portable.

1998-07-10  Greg Badros  <gjb@cs.washington.edu>

	* window.c (DeferExecution): Clean up of DeferExecution, inspired
	by Harvey Stein's latest complaint about the bugs related to it.
	Still could use more work, but better than before for me, it
	seems.


Fri Jul 10 10:45:31 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c (XNextEvent_orTimeout: Remove the #ifdef _hpux, it's
 	unnecessary, and an evil system-test macro anyway. Thanks to
 	Stephen Tell <tell@cs.unc.edu>.

	* syscompat.c: #define setlinebuf in terms of setvbuf or
 	(approximating) setbuf. Based on a patch from Stephen Tell
 	<tell@cs.unc.edu>.

1998-07-08  Greg Badros  <gjb@cs.washington.edu>

	* color.c, shutdown.c: fixed arguments that didn't match argument
	list numbers for req, opt, var (extract-docs found these bugs!)

	* *.c, *.h: Rename swCurrent to pswCurrent, use psw for locat
	ScwmWindow * variables.

	* window.c: fix a couple of bugs noticed by Dale Smith -- wasn't
	assigning to psw before testing for return value in
	frame_id_to_window and id_to_window.

	* drawmenu.c: Added a tiny multibyte patch from ITANI Eiichiro.

	* events.c: Use DBUG not WARN for the hook-call messages

	* menuitem.c (menuitem_properties): use SCM_EOL, not SCM_UNDEFINED 
	to end a list.  Added documentation for the primitives.
	
	* *.c: Added #include <config.h> to files that were missing it
	

1998-07-07  Greg Badros  <gjb@cs.washington.edu>

	* *.c, *.h: Rename to SCWM_DEFINE_HOOK, instead of DEFINE_HOOK

	* binding.c: Added comments for primitives, in an extractable
	format.  See utilities/dev/extract-docs for prototype extractor.
	Also added example /**CONCEPT:  ... */ documentation comment to be 
	woven into a section on concepts

Mon Jul  6 19:53:46 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* miscprocs.c: Fixed SCWM_PROC macro for
 	set_smart_placement_is_really_smart_x (was not getting snarfed
 	properly).

1998-07-06  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am: Added decor.x to $(BUILT_SOURCES)

	* scwm.c decor.c: #include decor.x, and call init_decor()

	* scwm.h: #include "scwm-snarf.h"

	* *.c: Use SCWM_PROC instead of SCM_PROC

Mon Jul  6 02:49:08 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c (HandleButtonPress, HandleKeyPress): replace
 	call_thunk_with_message_handler with scwm_safe_call0. I don't
 	believe anyone is using the (deprecated) symbol-dereferencing
 	functionality of the former, and the added safety of the latter is
 	a good thing.

	* add_window.c, borders.c, decor.c, drawmenu.c, events.c, font.c,
 	font.h, icons.c, misc.h, move.c, resize.c, scwm.c, scwmmenu.h :
 	Multibyte character set support from ITANI Eiichiro
 	<emu@ceres.dti.ne.jp>. Some of these changes should be reviewed,
 	but they build and work both ways.
	
	* window.c: Rename window-from-window-id to id->window and make it
 	ensure that we really are looking up by only the window id and not
 	various decoration ids. Also added frame-id->window primitive.

Sun Jul  5 23:13:06 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c (restack_windows): Added new primitive restack-windows
 	which takes a single argument, a list of windows. The windows will
 	be restacked in the following manner: the first will be left in
 	its current position in the stacking order, and the following
 	windows will be restacked immediately below it, in
 	order. Currently this is of limited usefulness, since it is
 	impossible to introspect the stacking order from the Scheme level,
 	but this will soon be remedied.

1998-07-05  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am: Mark SCM_SYMBOL and SCWM_PROC macros for etags.

	* color.c, color.h : Use SCWM_PROC throughout for primitives,
 	remove argument from getter functions, e.g., menu_hilight_factor,
	shadow_factor, etc.

	* scwm.h: Added #define of XSERVER_MAX_BUTTONS instead of
	MAX_BUTTONS -- use cMouseButtons instead, as that gets initialized 
	by init_pointer_mapping().

	* scwm.c (scwm_main): Call init_pointer_mapping() at startup.

	* scwm-snarf.h: Added, #defines SCWM_PROC macro that reduces
	redundancy a bit more than SCM_PROC, using the s_ symbol name
	prefix that scwm uses by convention

	* events.c (HandleMappingNotify): Call init_pointer_mapping().

	* binding.c (x_pointer_mapping): Added this function, added
	init_pointer_mapping, and added cMouseButtons and
	rgmapMouseButtons vars for providing access to the mouse pointer
	mapping (and number of mouse buttons)

	* binding.h: added proto for above, plus the EXTERN macros

1998-07-04  Greg Badros  <gjb@cs.washington.edu>

	* move.c, placement.c, window.c, window.h: Add and use
	invalid-interaction-hook and cannot-grab-hook instead of just
	ringing bell -- those can then call (beep)

	* binding.c: move SCM_PROC for s_mouse_event_type to before function

	* shutdown.c (restart): Rename variable char *n to sz

	* events.h, events.c (HandleMappingNotify): Added this function to
 	recall init_modifiers(), and a new hook X-MappingNotify-hook

	* binding.c: add mod-mask-{meta,alt,hyper,super} primitives for
	testing whether the mod-mask is available; make init_modifiers
	reset the static variables so modifiers that get removed are reset

1998-07-04  Greg Badros  <gjb@cs.washington.edu>

	* xmisc.c (PNewXTextPropertyFromSz): Added this function to create 
	a new XTextProperty struct for the set-window-text-property primitive

	* shutdown.c: Make Done dump core if first arg is < 0, so SegV's
	still give a core dump.

	* events.c (HandlePropertyNotify): Add Robert Bihlmeyer's
	mid-April patch to provide property notification hook.  Added
	passing the window as the second argument, and change named of
	hook to X-PropertyNotify-hook (lowercase "h" for consistency);
	use FXWindowAccessible() instead of XGetGeometry w/ all dummies.

	* deskpage.c: fix one line's indent

	* callbacks.c callbacks.h: Added scwm_safe_call2, call2_hooks for
 	convenience, #include <assert.h>, factor out the WarnBadHook(SCM)
 	code, fix bugs in resetting the hook -- use SCM_SETCDR instead of
 	SCM_SETCAR to SCM_EOL

	* misc.h, misc.c, scwm.h, scwm.c: Move scwm_msg from misc into
	scwm, since it should be available everywhere

	* Makefile.am: build xproperty

	* xproperty.c, xproperty.h: Added from mid-April from Robert
	Bihlmeyer.  Extended the print smob function to display the
	strings value if the property's type is a string.  Also added
	set-window-text-property primitive.

Fri Jul  3 17:44:06 1998  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.am:
	
	* Remove scmprocs.c -- no longer needed since guile-snarf is used pervasively.

	* Added remaining .x files that are now generated by guile-snarf

	* Added noinst_HEADERS, so that tags get built correctly

	* Rename BUILT_SOURCES to pkgdata_DATA since the all target
 	definitely should not depend on the snarfed sources, and automake
 	isn't smart enough to not put $(BUILT_SOURCES) in the dependence
 	for the Makefile even if $(BUILT_SOURCES) is in the
 	OMIT_DEPENDENCIES variable

	* Put pkgdata_DATA in CLEANFILES so the .x files get removed on a
 	make clean.

Fri Jul  2 15:24:22 1998  Greg Badros  <gjb@cs.washington.edu>

	* All .[ch] files: Lots of software-engineering changes, many to
	make scwm compile cleanly under the more stringent type-checking
	of C++:
		o Use SCM_PROC pervasively throughout -- this adds a couple .x files,
		and eliminates scmprocs.[ch]
		o Added appropriate init_MODULE functions, and moved some existing
		ones to the very end of the .c file
		o Fix unsigned int vs. int usage so the code type checks for C++
		o Fix unsigned char * vs. char * usage so the code type checks for C++
		o Put casts back in for the returned values from safemalloc for C++
		o Added XGetWindowTopLeft, fixed XGetPointerWindowOffsets, use them
		instead of XQueryPointer with dummy arguments in client code
		o Fix uses of enum-s that were really broken (e.g., functions in
		window.h) -- C++ is a lot pickier about enum-s, and the code was using
		an enum type to hold a bit vector, really.  Now bit-vectors are done
		using an int, and the enum just declares the symbolic constants.
		o Rename formal tmp_win to sw in a couple places
		o Use, e.g., SCMW_H__ not _SCWM_ for multiple inclusion prevention --
		_Caps is reserved for implementation, officially

1998-06-29  Robert Bihlmeyer  <e9426626@stud2.tuwien.ac.at>

	* scwm.c (scwm_main): Handle SIGSEGV.

	* binding.c: If a unbound modifier is given, issue more consistent
 	error messages.

	* events.c (send_key_press): Ditto.

1998-06-26  Maciej Stachowiak  <maciej@roc-ny1-21.ix.netcom.com>

	* Makefile.am, Makefile.in: Add GUILE_INCLUDES to INCLUDES

1998-06-26  Maciej Stachowiak  <maciej@roc-ny1-17.ix.netcom.com>

	* guile-compat.h: Don't prototype scm_parse path if
	HAVE_SCM_INTERNAL_PARSE_PATH is defined, in which case it will
	have a different prototype.

1998-06-26  Maciej Stachowiak  <maciej@roc-ny1-21.ix.netcom.com>

	* colors.c (nocolor): Throw an error when we fail to allocate a
	color in a gradient. Not the best solution, but it beats
	segfaulting.

	* callbacks.c (force_new_input_hooks): Check if an input hook's
	port is still open before attempting to check if it has characters
	ready; this was causing severe problems for fvwm modules.

1998-06-23  Maciej Stachowiak  <maciej@roc-ny1-07.ix.netcom.com>

	* callbacks.c (force_new_input_hooks): Don't compare the result of
	gh_memq to SCM_BOOL_T, compare for inequality with SCM_BOOL_F!

	* guile-compat.h: add a define for gh_memq as scm_memq when not
	already defined.

1998-06-22  Maciej Stachowiak  <maciej@roc-ny2-11.ix.netcom.com>

	* scwm.c: Use scm_internal_parse_path instead of scm_parse_path.

	guile-compat.h: If we don't have scm_internal_parse_path, #define
	it as scm_parse_path.

1998-06-21  Maciej Stachowiak  <maciej@localhost.localdomain>

	* Grab.h, ICCCM.h, callbacks.h, errors.h, font.h, image.h,
	scmprocs.h, scmtypes.h, string_token.h, system.h, guile-compat.c,
	guile-compat.h, syscompat.c, syscompat.h: Add copyright notice,
	GPL licensing terms.

	* Grab.c, ICCCM.c, callbacks.c, errors.c, font.c, image.c,
	scmprocs.c, scmtypes.c, string_token.c, system.c: Remove GPL
	exception for the FVWM license; RMS claims there is no
	incompatability.
	
1998-06-20  Maciej Stachowiak  <maciej@roc-ny5-15.ix.netcom.com>

	* scwm.c: Always use getopt_long, never use the previous hack to
	simulate it.

	* getopt.c, getopt1.c, getopt.h: Copied from glibc. rms says the
	GPL is compatible with fvwm's license, so there should be no
	problem. This beats maintaining the hack non-getopt_long hack for
	argument parsing. The files are already nicely set up for
	conditional inclusion.

	* Makefile.am, Makefile.am: build getopt.c, getopt1.c
	
1998-06-20  Maciej Stachowiak  <maciej@roc-ny5-14.ix.netcom.com>

	* callbacks.c, callbacks.h: Move input hooks here. add_input_hook
	renamed to add_input_hook_x, now returns a hook handle to be used
	with remove_input_hook_x. remove_input_hook_x
	added. run_input_hooks no longer removes triggered input hooks;
	this seems like a more reasonable semantics. Further,
	add_input_hook_x now accepts an inpput file port rather than a
	file descriptor, and the input hook system ensures that the hook
	is invoked until either char-ready? is not true of the port, or
	the hook has been removed.
	
	events.c, scmprocs.c: Input hook stuff removed from here.

1998-06-19  Maciej Stachowiak  <maciej@roc-ny3-25.ix.netcom.com>

	* syscompat.c, syscompat.h: Move functions that may or may not be
	in libc here. Also rename sleep_ms to usleep.

	string_token.c, string_token.h, system.c, system.h, misc.h: Remove
	the above mentioned functions.

	binding.c, complex.c, events.c, misc.c, move.c, scwm.c,
	scwmmenu.c, shutdown.c, virtual.c: include syscompat.h, replace
	calls to sleep_ms with usleep.
	
	Makefile.am, Makefile.in: compile syscompat.c

	* scwm.c: Remove call to GetFdWidth (no longer useful or
	necessary).

	system.c: Remove GetFdWidth.

1998-06-19  Maciej Stachowiak  <maciej@localhost.localdomain>

	* misc.h: Remove conditional includes of sun_headers.h and
	alpha_header.h, autoconf should take care of this type of stuff.

	sun_headers.h, alpha_header.h: Removed.
	
1998-06-18  Maciej Stachowiak  <maciej@roc-ny5-14.ix.netcom.com>

	* Makefile.am: Don't depend on having the `-n' option to `echo'
	when building init_scheme_string.c.

	Makefile.in: regenerated.
	
	* guile-compat.c, guile-compat.h, callbacks.c, menuitem.c: Restore
	guile 1.2 compatability; provide implementations of
	scm_internal_cwdr and scm_internal_stack_catch if needed, and use
	the compatabilty stuff throughout. Bug reported by Dale Smith
	<dale.smith@bellhow.com>
	
1998-06-18    Maciej Stachowiak <maciej@roc-ny5-07.ix.netcom.com>

	* shutdown.c: Separate the part of Done() that calls the restart
	command into run_restart_command(); also fixed it to make restart
	behave more reasonably. If no argument, or the argument "scwm" is
	given, it restarts scwm with the exact arguments it was given,
	plus `-s', otherwise, it executes the exact string given using
	`/bin/sh'. Bugs in previous version reported by Dale Smith
	<dale.smith@bellhow.com>

Sat Jun 13 02:51:44 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* guile-compat.c, guile-compat.h: New files; compatability
 	#defines and functions for guile 1.2 all moved here from numerous
 	files.
 
Thu Jun 11 02:54:09 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* callbacks.c: Error handling much improved; error messages should
 	now include backtrace and source file, line number and column.

Wed Jun 10 21:38:09 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c, scwm.h: Use scm_internal_select in place of select for
 	the main event loop when available; this should make scwm work
 	with guile threads.
	
Mon Jun  1 19:20:20 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* Makefile.in: regenerated with automake 1.3

	* events.c, events.h: Actually compute the highest file descriptor
 	used + 1, instead of using a system maximum. Apparently the old
 	way causes the program to eat CPU under FreeBSD. Bug report and
 	patch from Chris Toshok <toshok@hungry.com>.

Sun Apr  5 14:01:50 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* Makefile.am: List .x files in BUILT_SOURCES rather than lisiting
 	dependencies on them explicitly. Make scwmpaths.h depend on
 	config.status instead of Makefile. Suggestions from Tom Tromey
 	<tromey@cygnus.com>.

	Makefile.in: regenerated.

Fri Apr  3 11:43:28 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* Makefile.am: Fixed typo: s/fonts./font./g 

	Makefile.in: Regenerated.
	
Thu Apr  2 16:21:32 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* image.c, scwm.c: include "scwmpaths.h"
	miscprocs.c, scw.c: don't include "../version.h"

	These changes are to work with the new automake-based build system
 	(see the top-level ChangeLog).
	
Mon Mar 30 01:41:21 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* callbacks.c: Fixed bug in run_timed_out_timers() - was failing
 	to break out of the loop that runs the timers.

	* callbacks.c, callbacks,h, events.c: Added support for timer
 	hooks. This involved adding several procedures for managing the
 	timer hook list: shortest_timer_timeout, update_timer_hooks and
 	run_timed_out_timers, some changes to the event loop, and these
 	scheme primitives: 

	add-timer-hook! USEC PROC - schedule a call of procedure PROC with
 	no arguments to occur after about USEC microseconds have elapsed
 	(it may take somewhat longer if there are many x evebts to
 	process). Return a handle suitable to be passed to
 	remove-timer-hook!

	remove-timer-hook! HANDLE - remove the specified timer hook from
 	the hook list, preventing it from being invoked if it hasn't been
 	already.
	
Sun Mar 29 18:10:45 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* shutdown.c, shutdown.h: Files with shutdown handling for scwm,
 	moved from scwm.c, and implementations of restart and quit from
 	miscprocs.c. Features added are making the argument to restart
 	optional (defaults to whatever scwm was run as) and adding a
 	shutdown-hook using the new functionality.

	scwm.c, scwm.h, miscprocs.c, miscprocs.h, scmprocs.c: remove stuff
 	reimplemented above.

	Makefile.in: compile shutdown.c, generate shutdown.x.
	
	* add_window.c: Remove a bit more dead code from AddWindow().

	* binding.c, binding.h, scmprocs.c: Remove bind-event.

	* add_window.c, add_window.h: Use new-style hook support for new
 	window hooks; add-hook! should now be used with the
 	before-new-window-hook and after-new-window-hook hooks.
 	
	scwm.c: call init_add_window.

Sun Mar 29 14:38:25 1998  Greg Badros  <gjb@cs.washington.edu>

	* misc.h, lots of other files: clean up tons of prototypes, move
 	to appropriate files

	* placement.h: Added, for protos for placement.c

	* add_window.c: Call XGetGeometryCacheIt(..) to fix the bug where
	window positions were forgotten every-other "restart" of scwm;
	apparently the X server needs to be queried as to the geometry of
	the windows in order to get this right

	* misc.c: Added XGetGeometryCacheIt(..),
	XGetGeometryPositionOnly(..), rename "restart" variable to
	"fRestart" so it doesn't shadow the global fn named restart(..)

	* miscprocs.c: Use SCM_BOOL_FromBool, instead of ternary
	expression

	* placement.c: Move GetGravityOffsets() to the top and make it
	static since it's only used in this file

Sun Mar 29 13:38:24 1998  Greg Badros  <gjb@cs.washington.edu>

	* misc.c: simplify code for return value of GrabEm()

	* scwmmenu.c: Commented out the attempt to send XK_Right;
	XPutBackKeystrokeEvent seems to be working, now, though, but the
	menu still doesn't deal with the keystroke event properly.

	* window.c: Simplify DeferExecution -- it's now only used by
	select_window, and it's still buggy (when used with scwmexec)

Sun Mar 29 11:01:49 1998  Greg Badros  <gjb@cs.washington.edu>

	* borders.c: use SHOW_TITLE_P, instead of just checking fTitle --
	this handles decorate transients better, as they might have fTitle 
	set, but fDecorateTransient not set and be a transient window;
	Also changed SetupFrame(..) a bit to make it more clear what is
	happening (replaced uses of title_height by new variable
	button_width when they conceptually were the decoration button
	width [which we choose to be the title_height so the buttons are
	square]) 

	* decorations.c: Use SHOW_TITLE_P, see above note.

	* misc.c, misc.h: Added FXWindowAccessible(..) to abstract the oft-used
	XGetGeometry calls used only for their error return value;
	presumably this is just checking whether the window exists and can 
	be accessed.

	* miscprocs.c: Comment the RESOLUTION macro

	* scmprocs.c, window.c, window.h: Added transient? primitive,
	added CopySetAllFlags(..), added SHOW_TITLE_P macro for testing
	whether a title should be visible

	* scwm.c: Clean up some of the startup code -- moved the XSync in
	CaptureAllWindows into just the recapture case -- the main startup 
	code does an XSync anyway.  Added some commented out
	XDeleteProperty-s;  not sure if these are necessary, but my gut
	feeling was that we want to return the Server to a cleaner state.

	* scwmmenu.c: Make keyboard shortcuts immediately prepop the next
 	menu, use SCM_BOOL_FromBool(..), Try XPutBackKeystrokeEvent to
 	send a XK_Right to also automatically move the pointer into the
 	newly popped menu item (this doesn't work yet -- I probably need
 	to fill in more fields of the XKeyEvent struct.)
	
	* binding.c: Use 's' for super modifier, not 'P'

	* add_window.c (AddWindow): Clean up a lot -- always create the
	title windows, since we dynamically can turn them on or off.
	Simplify and comment throughout.

Fri Mar 27 12:26:18 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* module-interface.c: Use new hook interface. The broadcast-hook,
 	broadcast-config-hook and broadcast-name-hook special variables
 	are now expected to contain lists of procedures and may eb
 	manipulated with add-hook!, remove-hook!, etc.

	* callbacks.c, callbacks.h: New system for hooks - allows scwm to
 	set up distinguished Scheme variables that contain a list of
 	procedures to be invoked on certain actions, possibly with
 	arguments. Guile's usual add-hook! macro can be used. So far only
 	used for errors, but will be used throughout soon. For some fun
 	try, with flux.scm loaded: 

	(define (message-show-error . args)
	  (message (with-output-to-string
		     (lambda ()
		       (display "scwm error: ")
		       (map (lambda (arg)
			      (write arg)
			      (display " ")) args)
		       (newline)))))

	(add-hook! error-hook message-show-error)
 	
	* events.c: Include callacks.h.

Thu Mar 26 19:04:00 1998  Greg Badros  <gjb@cs.washington.edu>

	* add_window.c: Added some comments and debug code
	
	* scwm.c, binding.h, binding.c: Patch from Robert Bihlmeyer
 	<robbe@orcus.priv.at> to make the modifier keys more ICCCM
 	compliant;  he wrote:

	The following patch puts the modifier masks in variables, which
 	are initialized by a new function `init_modifiers()'. This should
 	be more compliant.

	Scwm will still lose, if the user changes modifiers after it has
 	started. One would have to act accordingly on MappingNotify
 	events; simply calling `init_modifiers()' is not enough, since the
 	now wrong modifier-masks are already stored in the key
 	bindings. So a re-evaluation of these is necessary, which is
 	beyond my understanding of scwm <g>. One could also say: so don't
 	do that.

	* events.c (send_button_press): Fix this function -- it was doing
	nothing because it wasn't filling in x,y and x_root,y_root of the
	synthetic event properly -- it's been broken for a long time, it seems.

	* decorations.c: Reset the fBorder and fTitle to false before
	turning them on again conditionally;  avoids fTitle being
	incorrectly set to True which was causing X errors when transient
	windows popped up since their title window was given an illegal
	height of 0
	
	* window.c (CopySetCommonFlags): Added this function; simulates
	or-ing in the old bit mask of just the "common" flags
	
	* window.h: Added proto for CopySetCommonFlags(..)

Thu Mar 26 18:15:59 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c: Fix error redirection to deal with the standard guile
 	error handler - it's necessary to redirect the default error port
 	as well as the current error port. Also remove some dead code from
 	the old scwmsend error handling.

Thu Mar 26 13:59:14 1998  Greg Badros  <gjb@cs.washington.edu>

	* misc.h: Removed a bunch of unused #define of FLAG variables from
	window bit field rewrite

	* window.c: Return SCM_UNSPECIFIED instead of SCM_BOOL_T from lots 
	of primitives.
	
Thu Mar 26 07:41:26 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c, window.h, scmprocs.c: Added window-frame-id procedure,
 	needed by the fvwm module stuff and perhaps generally useful.
	
	* scwm.c, events.c, module-interface.c, image.c: Replace
 	gh_eval_str, load, gh_apply and gh_call1 with new safe
 	versions. Calls to call_thunk_with_message_handler not replaced
 	until I make sure the calls in question are not relying on it's
 	ability to dereference symbols.

	* callbacks.c, callbacks.h: New support for all kinds of callbacks
 	that scwm needs (calling procedures, loading a file, evaluating a
 	string) with proper error handling. The new scwm_safe_apply,
 	scwm_safe_call0, scwm_safe_call1, scwm_safe_load and
 	scwm_safe_eval_str should be better than previous solutions and
 	will be used throughout soon.

	Makefile.in: compile callbacks.c, build callbacks.x.
	
Wed Mar 25 22:42:42 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* Massive rewrite of window flags;  converted from using bitmasks
	to using bit fields.  Gets rid of lots of ugliness due to >32
	flags, and also *really* cleans up all kinds of expressions using
	the flags. Also, added SCM_BOOL_FromBool(bool f) to convert a C
	bool into a SCM_BOOL (instead of idiomatic ternary operator
	expression). Various other less severe clean ups.

	This still may not be the best & final way to do things, but it's
 	far closer, and makes a lot of the boolean guards testing window
 	state a *lot* more readable which will be really important as we
	make more changes.

Wed Mar 25 18:29:12 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* system.c: Remove unused findFile function.

	* color.c: Use gh_number_p, not scm_number_p.

Wed Mar 25 15:01:28 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* drawmenu.c: Set cpixSideImage to 0 when there is no side image

	* color.c: Use SCM_FALSEP(scm_number_p(xxx)), not
	!scm_number_p(xxx) since SCM_BOOL_F still evaluates to "true" as a 
	C expression.

Tue Mar 24 15:57:47 1998  Greg Badros  <gjb@cs.washington.edu>

	* scmprocs.c, miscprocs.c, miscprocs.h: Added
	X-version-information and X-display-information primitives, which
	are needed for FvwmM4 module compatibility, but generally useful
	in their own right

Tue Mar 24 15:14:16 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* miscprocs.c, miscprocs.h, scmprocs.c: Added restarted?
  	primitive, which returns true if this is not an original
 	invocation of scwm, but rather one after a restart. Patch from
 	Robert Bihlmeyer <robbe@orcus.priv.at>

Tue Mar 24 11:05:27 1998  Greg Badros  <gjb@cs.washington.edu>

	* scwmmenu.h: Added typedefs and pointers to functions for the
	loadable primitive menu drawing code.

	* scwmmenu.c: Added "construct-menu-primitive" symbol, and use it
	if not #f to call ConstructDynamicMenu(..) so that dynamically
	loaded menu drawing code will be invoked.  This might not be the
	right way to do it -- maybe the dynamic function should be an
	argument to popup-menu, but this is proof of concept, and gives a
	starting place for developing alternative drawing primitives.

	Call the PaintDynamicMenu and PaintMenuItem routines through
	function pointer variables that ConstructDynamicMenu initializes.
	 
	Also, don't complain about a bad menu item if the menu item is #f
	(we use #f to eliminate menu items from a menu when the program
	doesn't exist -- this may be done more cleanly in scheme, perhaps, 
	but #f can still be a special case not warranting a warning
	message).

	* font.c (menu_font_update): Added this function to here, from
	drawmenu.c

	* drawmenu.h: Remove protos for everything but
	ConstructDynamicMenu(..) since it is the only loaded primitive
	directly referenced by name.

	* drawmenu.c (ConstructDynamicMenu): Rearrange so this function is 
	at the end of the file, and is the only exported function required 
	(it sets struct member variables to point to the other functions
	in the interface). Move menu_font_update into font.c, from here.

	* Makefile.in: Rudimentary changes for building shared objects for 
	loadable primitives (in the context of menu drawing primitives);
	The options are currently hard set for Linux and gcc, as I'm not
	sure how to do this on other platforms

	* draw-pie-menu.c: Added;  not really pie menus -- just a visually
	different standard fvwm2-like menu;  pie menus will require a bit
	of work, it seems.

Sun Mar 22 11:52:25 1998  Greg Badros  <gjb@cs.washington.edu>

	* binding.c (PchModifiersToModmask): Abort binding when we get an
 	unrecognized modifier, instead of binding using the remaining
 	modifiers.  Thanks to <tihonov@ffke-campus-gw.mipt.ru>

	* focus.c (Unfocus): Added function Unfocus() -- should be used
	more pervasively to replace calls to SetFocus with Scr.NoFocusWin
	as first arg.

	* scwm.c (Done): Invert sense of STREQ test in Done() so that all
 	args besides -s are copied into the new argument list; thanks to
 	Robert Bihlmeyer <robbe@orcus.priv.at> for catching this.

	* window.c, window.h: Added unfocus primitive

	* scmprocs.c: Added unfocus primitive

	* focus.h: Added, for protos from focus.c; removed SetFocus()
	proto from misc.h, where it was before.

Sat Mar 21 20:46:35 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* menuitem.h (MENUITEM_P): Test SCM_NIMP(X) first to avoid core dump.

	* scwmmenu.c (NewPchKeysUsed): Just ignore menuitem-s that are #f, 
	instead of core dumping.

Sat Mar 21 16:50:57 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* drawmenu.c (ConstructDynamicMenu): Save the side image width in
	pmdi->cpixSideImage

	* scwmmenu.c (popup_menu): Added an optional second argument
	"warp-to-first" that says whether we want to warp to the first
	menu item on popup

	* scwmmenu.c (InitializeDynamicMenu): Fixed bug where keyboard
	shortcuts only worked the first time the menu was popped up

	* scwmmenu.c (MenuInteraction): Added fWarpToFirst argument,
	intended to be passed True from popup-menu (as second arg) when
	bound to a keyboard shortcut;  makes the popped-up menu's first
	item get selected initially

	* scwmmenu.c (WarpPointerToPmiim): Check for null pmiim, and do
	not core dump if is null.

	* scwmmenu.c (SetPopupMenuPositionFromMenuItem): Make left-side
 	menu popups overlap with the side image, if any (instead of being
 	completely to the left of the current menu).

	* drawmenu.c (ConstructDynamicMenu): Save the size of the side
 	image in the MenuDrawingInfo struct. 

Fri Mar 20 21:05:39 1998  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.in: Do not use touch to create the .x files before
	running guile-snarf;  guard inclusions of .x files with #ifndef
	SCM_MAGIC_SNARFER

Fri Mar 20 00:33:33 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* miscprocs.c, miscprocs.h, scmprocs.c: Added scwm-version
 	procedure.

	* color.c, color.h: Color object rewrite. The followinf new
 	features are available: colors are properly garbage collected, and
 	are freed when no longer in use. Changing colors a lot will no
 	longer gradually eat your colormap. Procedures to set colors have
 	been split to set one color at a time. And color objects are
 	cached just like image and font objects, so specifying colors by
 	string should provide maximal color object sharing
 	automatically. The following new procedures are available:

	make-color STRING - replaces load-color

	color-properties COLOR - returns the properties of a color object:
 	currently only name and the X pixel value it uses.

	clear-color-cache-entry STRING - clears an entry in the color
 	cache; shouldn't be necessary unless you do something really weird
 	to your X server, but provided for consistency.

	make-relief-color COLOR FACTOR - factor is a floating point number
 	that is multiplied by the color's saturation and luminosity in HLS
 	sppace. This is used with specific factors to 
	
	set-hilight-foreground! COLOR, set-hilight-background! COLOR -
 	these replace set-hilight-colors! FG BG

	set-menu-foreground! COLOR, set-menu-background! COLOR,
 	set-menu-stipple! COLOR - replace set-menu-colors!
	
	set-hilight-factor! FLOAT - sets the factor that is used by
 	windows with the current decor to generate the relief "hilight"
 	color for the regular and hilight background.

	set-shadow-factor! FLOAT - sets the factor that is used by windows
 	with the current decor to generate the relief "shadow" color for
 	the regular and hilight background.

	hilight-factor, shadow-factor - retrieve the settings of the above
 	two factors from the current decor.]

	set-menu-hilihght-factor! FLOAT, set-menu-shadow-factor! FLOAT,
 	menu-hilight-factor, menu-shadow-factor - analogous to the above
 	but for menus, and are global, not decor-specific.
	
	All procedures that take a color (except color-properties) will also
 	accept a string that specifies a color.
	
	window.c: set-window-colors! split into set-window-foreground! and
 	set-window-background!, and converted to use new color system.
	
	add_window.c, borders.c, decor.c, events.c, face.c, icons.c,
 	module-interface.c, module-interface.h, scmprocs.c, scmptypes.c,
 	screen.h, scwm.c, scwmmenu.c, window.c, window.h: converted to new
 	color system.

	colors.c: Removed GetHilite and GetShadow.

	Makefile.in: generate color.x
	
Sat Mar 14 01:04:14 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* window.h: Remove or comment out some unused fields of the window
 	structure.

	* screen.h: StdColor and StdRElief members of the ScreenInfo
 	struct are not used anywehere; removed.

Thu Mar 12 20:35:02 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* Makefile.in: Build init_scheme_string.c use \n\ at ends of
	lines, instead of using a multiline string constant (which vendor
	cc-s don't necessarily support and is not standard C).

	* scwmmenu.c (PmiimFromPmdShortcutKeypress): Remove inline
 	specifier.

	* binding.c (BnumFromSz): Remove inline specifier

Thu Mar 12 00:27:24 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c: Delete the SCWMEXEC_REQUEST property after reading it.

	* miscprocs.c (scwm_version), miscprocs.h, scmprocs.c: New
 	procedure scwm-version, returns a string of the current scwm
 	version.

	* scwm.c, events.c: Remove support for --interactive mode;
 	scwmrepl should now be an adequate replacement.

Wed Mar 11 13:54:02 1998  Greg Badros  <gjb@cs.washington.edu>

	* move.c (AnimatedMoveWindow): now handle expose events as we
	animatedly move windows, too (I like the affect from below *that*
	much!)
	
	* window.c (window_shade): Instead of keeping only expose events
	after doing the window shade, throw out the Resize events; this is 
	more precisely the goal, and removes an XSync() call as a result.
	
	* move.c (AnimatedShadeWindow): handle expose events as we roll up 
	the window shade;  much nicer effect in that previously hidden
	windows get redrawn while the shade is still rolling up.

Wed Mar 11 00:10:49 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c: Handle shaded windows that are resized by the app
 	correctly. However, I discovered while fixing this that changing
 	the title height while some windows are shaded loses.

	* scmprocs.c: Remove inclusion of paths.h

Tue Mar 10 22:10:54 1998  Greg Badros  <gjb@cs.washington.edu>

	* window.c (window_shade): Fixed bugs w.r.t. not redrawing the
	decorations that get exposed due to an animated window shade (was
	throwing out all events using XSync to avoid processing a resize), 
	and regain proper focus after the window shade;  still did not fix 
	the bug w.r.t. scwm improperly not disallowing resizes on shaded 
	windows.

	* events.c (HandleScwmExec): Fixed warning re: 12 arg's type in
	XGetWindowProperty.

Wed Mar 11 00:10:49 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* scwm.c: Fixed version output (added trailing newline). Bug fix
 	from James Troup <J.J.Troup@scm.brad.ac.uk>

Tue Mar 10 00:32:45 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* image.c (path_expand_image_fname): Call image-not-found-hook if
	it's set to a procedure.  Wrote InvokeHook1, but it's too thin a
	wrapper over gh_call1 right now; also should be in a different file.

Mon Mar  9 23:49:43 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* borders.c (SetBorderX): Eliminate a core-dump in the case that
	an image for a decor is invalid;  this became an issue now that
	I've relaxed the rules for pixmap validity (we now allow missing
	pixmaps to stick around as SCM_BOOL_F)

Mon Mar  9 23:45:40 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* screen.h (GetDecor): GetDecor macro did not need to use the
	cpp stringization operator; removed the `##'

Mon Mar  9 23:31:59 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* image.c (path_expand_image_fname): Use warnings instead of
	scm_wrong_type_arg when we can't find an image file

	* face.c (add_spec_to_face_x): Use warnings instead of
	scm_wrong_type_arg when we can't find an image file
	

Mon Mar  9 22:50:16 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* drawmenu.c: Inverted the shading of the popup menu item arrow;
	selected now appears pushed in, unselected is reliefed out.

Mon Mar  9 01:41:40 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c: Calculate length for read SCWM_REQUEST property more
 	correctly in HandleScwmExec.

	* events.c(HandleScwmExec): redirect output and error to the
 	requesting program.

	scwm.c, scwm.h: intern atoms for SCWMEXEC_OUTPUT, SCWMEXEC_ERROR.

	* events.c: Use scm_current_error_port, not
 	scm_current_output_port in error handler.

	* events.c: Make HandleScwmExec handle multiple window IDs in the
 	SCWMEXEC_REQWIN property, so clients can use PropModeAppend rather
 	than PropModeReplace.

Fri Mar  6 06:46:20 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* scwm.c (scm_parse_path): Provide if not in libguile.

	* window.c: Fix to smart-placement, patch from Hideki Sakurada
 	<sakurada@kuis.kyoto-u.ac.jp>

	* scwm.c (init_scwm_load_path): New function to add the contents
 	of the SCWM_LOAD_PATH environement varibale and the compiled-in
	load path to guile's load path.

Sun Mar  1 02:16:56 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* module-interface.c: Pre-define the broadcast-hook,
 	broadcast-config-hook and broadcast-name-hook variables to #f to
 	make sure they are defined in the root module; also, access them
 	more efficiently by holding pointers to their value rather than
 	doing a gh_lookup each time.

Sat Feb 28 00:57:52 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* module-interface.c (marshal_fvwm2_config_info,
 	init_module_interface): New procedure to generate the data needed
 	to send to fvwm modules on BroadcastConfig, and a new function to
 	initialize stuff.

	module-interface.h: prototypes for the above functions.

	scwm.c: call init_module_interface

	Makefile.in: build module-interface.x
	
	* events.c: Fixed bug in HandleScwmExec that was causing random
 	crashes - strings should be sent with format 8, not 32, in
 	XGetWindowProperty.

	* events.c: Slight change to HandleScwmExec: don't delete
 	XA_SCWMEXEC_REQUEST properties; it just confuses clients.

Fri Feb 27 18:02:24 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c: Added new procedure HandleScwmExec to handle the new
 	scwmexec protocol. Values should be properly returned to the new
 	scwmexec utility. The old scwmsend protocol is still supported for
 	now, until all the tools that depend on it can be replaced. There
 	is no support for reporting errors back to scwmexec yet, but there
 	should be. ICElib turned out to be to complicated to be useful, so
 	the new solution still uses properties, but in a somewhat saner
 	way.
 
	scwm.c, scwm.h: declare and intern atoms for the scwmexec
 	protocol.

	* move.c: Fix problem with AnimatedShadeWindow which was making
 	the title bar get clobbered occasionally. Patch from Oleg Tihonov
 	<ost@benetnash.ffke-campus.mipt.ru>

Thu Feb 26 22:00:17 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* Rework all the code to make compile using g++, while still
 	remaining C code. Lots of C++ warnings, but no more errors
 	Included renaming window.h's item from class to classhint Adding
 	missing include files (to fix missing function prototypes)
 	Removing duplicate sym_XXXX symbols from miscprocs.c and other *.c
 	files Fixing some missing `return' specifiers of non-void fns
 	Unnesting the vector_coords struct from the ButtonFace struct
 	Adding some #ifdef __cplusplus as needed Reworking access to the
 	`new' memvar of the colormap X object Adding break;'s to switch's
 	empty default cases.

	* scmw.c: Also added some #ifdef USE_CASSOWARY blocks

Wed Feb 25 16:55:29 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* font.c, font.h: Several changes to the font interface. Fonts are
 	now directly Scheme objects; no hacky FontWithInfo struct
 	needed. There is a font cache similar to the image cache. The
 	procedures font-properties and clear-font-cache-entry were added;
 	the former is used to get the font's name and height, the latter
 	to explictly clear entries in the font cache (shouldn't be needed,
 	but you never know). font.c also now uses the SCM_PROC macros and
 	such. Also, load-font was renamed make-font for consistency.
	
	* borders.c, decor.c, drawmenu.c, drawmenu.h, icons.c, icons.h,
 	miscprocs.c, move.c, resize.c, scmprocs.c, scmtypes.c, screen.h,
 	scwm.c, scwmmenu.c: modified for the new font interface.
	
	* Makefile.in: build font.x

	* scwm.c: Added scwm_gh_launch_pad and scwm_gh_enter to guarantee
 	proper loading of boot-9.scm once and only once across guile
 	versions. This is a hack until a real solution is available.

Fri Feb 20 03:22:23 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* add_window.c, events.c, icons.c, move.c, placement.c, scmprocs.c
 	virtual.c, window.h: Icon handling fixes and changes:

	Icon geometry has been broken for quite some time, it should be
 	better now.

	The icon settings are now in four procedures: 

	set-icon! - sets the requested icon image; if #f, no picture is
 	shown, just the icon title. However, unless force-icon is set, the
 	app icon will take precedence over this setting, so for instance
 	if there is an app icon, it will show up even if this setting is
 	#f.

	set-force-icon! - if #t, the specified icon image or #f indicating
 	no icon image will override the app-provided icon, if any. If #f,
 	the app icon takes precedence.

	set-icon-title! - #t or #f will specify wether the icon title is
 	or is not shown respectively.
	
	set-show-icon! - just determines wether or not the whole icon is
 	shown at all, without affecting any other settings (so setting it
 	to #f and then back to #t will restore all the original icons).

	* module-interface.c: Broadcast: Provide the num_datum parameter
 	to broadcast hooks.

	* image.c, image.h: Syndry improvements:
	
	Reorganized image loading - loaders can now be specified by a
 	suffix with more than one dot in it (so ".xpm.gz" works, for
 	instance) and the code is more modular overall.
	
	Improved cache handling - images are cached by both the requested
 	name and the full path; cache entries may be explicitly cleared
 	with the new clear-image-cache-entry.
	
	image-properties changed to return an association list - this is
 	more robust against changes in the set of properties returned.
	
	The new "foreign" field allows pixmaps from outside sources (app
 	icons and the like) to correctly not be freed when the image
 	object is,

Wed Feb  4 23:57:58 1998  Greg J. Badros  <gjb@cs.washington.edu>

	* scwm.c: Added patch for initialization from Jim Blandy, to
	account for changes in the guile startup code -- fixes the unbound
	variable error.

	* scwmmenu.c: Permit embedded #f's in menu lists, and just ignore
 	them

Tue Jan 27 18:16:28 1998  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c, events.h, scwm.c, scmprocs.c: Added new Scheme
 	procedure add-input-hook and associated support code in the event
 	loop - basically this allows the user to provide an fd to select()
 	on and a thunk to call if input becomes available on the fd. This
 	should be useful for the preliminary fvwm module interface.	

Tue Dec 16 15:38:02 1997  Greg Badros  <gjb@cs.washington.edu>

	* misc.h, misc.c: Move Destroy, RaiseWindow, LowerWindow, and Unmap into
	window.c, and rename to DestroyScwmWindow, UnmapScwmWindow; move
	HandleHardFocus into events.c

	* errors.c: Removed scwm_error_imm()

	* binding.c: use MAX_BUTTONS, not 3 for highest mouse button
	number

	* add_window.c: remove CLICK_TO_RAISE compile time option ifndefs
	

Tue Dec 16 14:41:16 1997  Greg Badros  <gjb@cs.washington.edu>

	* Replace TRUE with True, and FALSE with False
	
	* scwm.h: Moved ScwmWindow into window.h, moved ColorPair and
	MyFont (renamed to FontWithInfo) into screen.h, other cleanup to
	make smaller since this is included virtually everywhere, move
	binding context macros in binding.h

	* misc.h: remove protos for stuff in virtual.c

	* image.c: No longer warn about pixmap library since I'm not 100%
	sure the depth is supposed to be returned by libXpm

	* virtual.h: added w/ protos of fns in virtual.c

Tue Dec 16 12:41:18 1997  Greg Badros  <gjb@cs.washington.edu>

	* scwmmenu.c: Check isascii(keysym) before isgraph(keysym) to
	avoid segfaults on SGI IRIX 5.3 due to out-of-bounds array access

	* string_token.c, string_token.h: Remove stripcpy() as it is no
	longer used.

Fri Dec 12 16:18:48 1997  Greg Badros  <gjb@cs.washington.edu>

	* Rename COLORP to COLOR_P, and FONTP to FONT_P for consistency
	and readability

	* util.c (call_thunk_with_message_handler): use DEREF_IF_SYMBOL to 
	permit 'iconify, e.g.

	* scwmmenu.h: Added DYNAMIC_MENU_P, DYNAMIC_SAFE_MENU,
	MENU_OR_SYMBOL_P, added void *p to MenuDrawingInfo for client
	drawing code to use for extra information, added scmExtraOptions
	to Menu for free-form client options

	* scwmmenu.c: Fixed some memory leaks from not freeing pmdi,
	rgpmiim, etc. when popping down menus -- wrote FreeDynamicMenu to
	do this (if only this were C++!); use SCM_PROC for other
	primitives in here; permit symbols for fonts, colors, and actions, 
	and deref them as needed using the new macros; hide some debug
	code in DBUG.

	* scwm.h: Added DEREF_IF_SYMBOL, DYNAMIC_PROCEDURE_P,
	PROCEDURE_OR_SYMBOL_P, RESTP_SCM

	* scwm.c: Use primitive-load instead of load -- MS: is this any
	better?

	* scmprocs.c: Remove gh_new_procedure calls for stuff now done
	with SCM_PROC

	* menuitem.c: use SCM_PROC for other primitives in here; permit
 	symbols for fonts, colors, and actions, and deref them as needed
 	using the new macros.

	* font.h: Added DYNAMIC_FONT_P, DYNAMIC_SAFE_FONT, rename FONT to
	FONT_P

	* font.c: Added warning message when a font cannot be loaded

	* drawmenu.c: Rewrite DrawUnderline, add PxfsFontForMenuItem, use
	DYNAMIC_SAFE_FONT, DYNAMIC_SAFE_COLOR in fixing up the gc;  these
	changes fix the sizing bug (it was using the size of characters in 
	fixed font, but then drawing using the selected proportional font)

	* color.h: Added COLOR_OR_SYMBOL_P, DYNAMIC_COLOR_P,
	DYNAMIC_SAFE_COLOR

	* color.c: Added warning message when unable to parse or allocate
	color, and return SCM_BOOL_F in those cases

	* binding.c: Permit symbols using PROCEDURE_OR_SYMBOL_P


Thu Dec  4 18:49:23 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* scwmmenu.c: Lots of changes to the menuing code, including
 	keyboard support, better placement so that menus stay onscreen,
 	cascading menu support, underlined shortcut keys and shortcut key
 	support, more.  Still more configirability and flexibility to be
	added, as well as animation.

	* scwmmenu.h: need fHoverActionInvoked as a DynamiMenu field, not
	as a local variable.

	* string_token.c: fixed forgotten return value in
 	IchIgnoreCaseInSz()

	* borders.h: removed internal functions from the interface

	* drawmenu.c: Be safer drawing menu items to avoid segfault; check
	for scmAction just being set for highlighting, do not require it
	to be gh_procedure_p(), since we know allow actions to be popup
	menu-s again

	* font.h: Add extra parens and SAFE_ versions of casting macros

	* image.c: use scwm_msg, not fprintf, for a debug message

	* menuitem.c: Require that hover_action be a procedure again,
	since cascade popups are now the action object, not the
	hover_action object

	

Sun Nov 30 13:23:00 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* parse.h: Removed

	* scwm.h: added enum wm_client_functions to replace the few parts
 	of parse.h that were used by check_allowed_function and
 	decorations stuff
	
	* decorations.c, window.c: renamed check_allowed_function2 to
 	check_allowed_function, since check_allowed_function no longer
 	exists
	
	* scwm.c: Renamed s_XXXX to szXXXX since they might as well be
 	consistent hungarian tags if they're going to be tag-like 

Sun Nov 30 12:25:17 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* Use enum cursor for cursors, and prefix the cursor names with CURSOR_

	* Rename Scwm_MenuItem to MenuItem, Scwm_Menu to Menu -- the Scwm_
 	prefixes were just a hack to get around name conflicts with the
 	legacy menuing code. Various parallel renames, as well.

	* window.c: mark the icon_image scm object, make DeferExecution a
 	static fn.

	* drawmenu.c: Tweak some drawing constants a bit, add real
 	separators, make DrawSeparator only take 1 y-coord since it's for
 	horizontal lines
	
	* image.c: Output images as #<image [name] from [path]>, fix GC
 	code changes from bugs I introduced when I didn't understand the
 	GC idioms.
	
	* screen.h, misc.h: Moved the cursor types from screen.h into
 	here.
	
	* screen.h: Removed the name_list * "TheList" since this wasn't
 	used any more

	* scmprocs.c: Rename make-menu-item to make-menuitem,
 	make-scwm-menu to make-menu, remove set-image-path!

	* scwm.h: Fixed precedence problem in UNSET_SCM macro
	
	* scwmmenu.c: Handle elements in the scmMenuItems list that are
 	not menuitem-s better.  Add menu_init_gcs(), call it from scwm.c


Sat Nov 29 01:09:35 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* menu.c, menu.h, menus.c, menus.h: Removed since menuitem.c,
	menuitem.h, scwmmenu.c, scwmmenu.h, drawmenu.c, drawmenu.h replace
	the functionality these had.  Binding stuff got moved into
	binding.c

	* Picture.c, Picture.h: Removed these, since image.c, image.h
	replaces their functionality.

Fri Nov 28 23:58:30 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* image.c: Added full_name scm string to track where the image
	actually got loaded from.  Use that as it's print string, as I
	think a unique identifier makes more sense than just what the user
	gave to make-image.  image-properties still returns the "name" as
	the car of the list it returns.

	* Move GC_MARK_SCM_IF_SET into scwm.h, and use in image.c.

Fri Nov 28 23:32:18 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* image.c: Adding warnings throughout the imaging code.  I know
 	we've not decided how best to handle warnings, but that doesn't
 	mean that they shouldn't go in the code.
  	scwm_msg(WARN,__FUNCTION__, <msg>) works great, and will be easy
 	to find later when we do something different; Added a note about
 	not finding the max path length every time through... can we do
 	stuff when image-load-path changes? Added a .xpm.gz loader -- does
 	this work?

	* image.h: Added SAFE_IMAGE(x)

	* Makefile.in: Generalize the .x building better; not just for
	image.x any longer

	* Use image.h, not Picture.h for almost everything (except old menu
	code)

	* Use STREQ throughout instead of !strcmp -- I've never liked the
 	latter idiom because of the "!" seems to say not equal

	* Picture.c,Picture.h,paths.c,paths.h: Move szPicturePath into
 	paths.c as szImagePath, though it'll go away real soon now.

	* drawmenu.c: tweak up some of the spacing constants, use images,
 	not pictures. Adding underlining of shortcut keys.  Made
 	PaintMenuItem be external, so that scwmmenu can use it on expose
 	events.

	* icons.c: Removed some legacy code hidden in comments

	* menuitem.c, menuitem.h: Use new GC_MARK_SCM_IF_SET abstraction;
	use images, not pictures. Added menuitem-properties primitive,
	added init_menuitem, use guile-snarf. Added chShortcut,
	ichShortcutOffset, imiim, pmd to MenuItemInMenu objects.  Added
	SAFE_SCWM_MENUITEM caster 

	* smprocs.c: update set-image-path!, make-menu-item

	* scwm.c: Added setlinebuf calls for stderr and stdout to ease
 	debugging -- perhaps this is a portability problem.  Also may be
 	an efficiency problem later on, but for now it's the right
	thing. Added new init_... calls

	* scwm.h: Added UNSET_SCM(x) abstraction for variable type checking

	* scwmmenu.c: Use GC_MARK_SCM_IF_SET; use images, not pictures;
	make NewPchKeysUsed store state in the MenuItemInMenu-s; added
	menu-properties primitive; use UNSET_SCM throughout; Got
	hover/unhover hooks working, got popup window behaviour working;
	added numerous menu utility functions; Do highlighting of current
	item properly; use guile-snarf

	* scwmmenu.h: Added SAFE_SCWMMENU; use images, not pictures

	* string_token.c: Added IchIgnoreCaseInSz, and noted that stripcpy
 	can go away when old menuing code goes away

	* xmisc.c: DrawImage now takes a scwm_image * instead of a Picture *


Thu Nov 27 23:37:33 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* Augment all OBJECT_P-s with SCM_NIMP(X) test to make sure they
	are safe and remove a ton of duplicated code throughout the whole
	system;  we should *NOT* test, e.g., SCM_NIMP(X) && COLOR_P(X) any
	longer, and the color_p function is simplified to just translating
	between a C bool and a guile boole

	* Added module-interface.h, and include it throughout as needed.

	* icons.c, icons.h: Removed reliance on Picture.[ch].  In the process,
	changed when icon windows get created to when the window is added,
	not when the icon is first used. THIS PROBLEM BROKE SOME ICON
	STUFF, but brief testing shows that things generally work, modulo
	the stuff w.r.t. increased flexibility of user pixmap
	overriding... Also removed some newly dead code there.

	* binding.c: fixed grab key from all window bug -- was grabbing
	keys from all windows even if C_WINDOW bit was not set, and
	unbind-mouse bug -- was not permitting numbers for the button as
	bind-mouse did. Thanks to Oleg Tihonov
	<oleg@benetnash.ffke-campus.mipt.ru> for reporting the problems.
	Also caught a small memory leak.

	* menu.h decor.h: Move #include-s *before* the EXTERN #define,
	since it could cause big problems to include a header file that
	redefined EXTERN before the rest of the .h file

	* font.h, drawmenu.c: don't use SAFE_FONTP, since FONTP now is safe

	* events.c: Replace gh_standard_handler -- bug in guile (?) is
	stopping my new scwm_error_handler from being used to evaluate
	SCWM_PROPERTY messages, but this seems to work and gives slightly
	more useful error messages.  Also removed some szIconFile
	references, and use sw->icon_image, not sw->picIcon

	* image.c: Rename image?-new to image?, added image_properties,
	check depth attribute return value and print a message if it looks
	like Xpm is screwing up (it does for me), added
	make_image_from_pixmap for internal C code.

	* window.c: added window-from-window-id function (needed for
	autoraise, broadcast stuff)
	

Wed Nov 26 11:07:51 1997  Greg Badros  <gjb@cs.washington.edu>

	* Do not define away the Broadcast{,Name,Config} functions -- call
 	the ones in module-interface.c, include module-types.h where
 	needed

	* Makefile.in: Stop using $(SHELL) -ec to build dependencies as
 	quoting becomes a burden giving the new complex setting of
 	CFLAGS.... not sure what the ramifications of this are, and I
 	still appear to be getting problems building dependences

	* borders.c: Changed check that had an extra "!" and was causing a
 	dereference of an image that was SCM_BOOL_F.  Fixes my core dump
 	problem.

	* image.c: Rename make-image-new to make-image, and change old
 	make-image back to make-picture (to ultimately be removed)

	* move.c: Remove overshooting target bug in AnimatedWindowShading
	by just stopping once we're at least 100% to the target.

	* scwm.c: init_scheme_string no longer const char *, just char *

Wed Nov 26 00:38:50 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* image.c: Added support for registering a "default" image loader
 	which is used if no loader is registered for the file's extension
 	or if the registered image loader fails.

Tue Nov 25 16:37:01 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* face.c, face.h: Use scheme image objects instead of Picture
 	structs for all images in faces; add mark_face which appropriately
 	gc-marks any referenced images.

	scmtypes.c: Use the new marker function for faces.

	add_window.c: Removed all code that tries to load the mini-icon
 	from a filename, and change AddWindow to expect the tiled pixmap
 	for the border, if any, to be a Scheme image object.

	screen.h: Replaced the p member of the u union in the ButtonFace
 	struct with an image member which is an SCM expected to hold
 	SCM_BOOL_F or an image object.

	scwm.h: Replaced picMiniIcon and szMiniIconFile fields in the
 	ScwmWindow struct with a mini_icon_image field which is an SCM
 	expected to hold SCM_BOOL_F or an image object.

	borders.c: Draw images specified by button/titlebar/border faces
	(including mini-icons) knowing that they are now Scheme image
 	objects.

	window.c: Changed set-mini-icon! to expect and use image objects
 	rather than picture objects. Changed set-icon! to make some effort
 	to remember the icon if it is turned off; this needs more work
 	however.

	* scwm.c: Initialize the new image code.

	* image.c, image.h: Added the init_image_colormap() function; the
 	colormap for images needs to be initialized separately and later
 	than the image code itself; also protect image_loader_hash_table
 	from gc.

Mon Nov 24 14:00:49 1997  Greg Badros  <gjb@cs.washington.edu>

	* Makefile.in: Fixed some dependence problems using image.x file.
  	Added rule to build init_scheme_string.c from
 	../scheme/minimal.scm and link that in with the binary

	* scwm.c: SetRCDefaults() now uses the extern char
	*init_scheme_string from the .c file that the makefile builds.

Mon Nov 24 00:07:05 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* Makefile.in: Compile image.c; use guile-snarf on it as well to
 	create image.x.

Sun Nov 23 23:59:00 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* image.c: Updated to be able to at least compile; experimentally
 	use the SCM_PROC macro and the guile-snarf program to register new
 	procedures.

Sun Nov 23 17:08:02 1997  Greg Badros  <gjb@cs.washington.edu>

	* xmisc.[hc]: added DrawImage to abstract drawing of both pixmaps
	and bitmaps.  Perhaps this should be in the new Image.[ch], but
	I'm holding off until that code is in use.

	* drawmenu.[ch]: rework much of the drawing code so that it now
	looks fairly reasonable.  Still need more item spacing, etc., but
	there are more important things to handle before polishing the
	look.

	* face.c, drawmenu.c, scwmmenu.c: remove the checking of
	HAVE_GH_LENGTH -- do this only in scwm.h

	* scwm.h: add above check.

	* menuitem.h: reduce the number of fields in MenuItemInMenu -- use
	more per-menu drawing information in MenuDrawingInfo struct

	* scwmmenu.c: Don't trust drawing code to set correct event mask--
	do it here instead
		

Sun Nov 23 01:42:37 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* menu-item.h: added some more fields to MenuItemInMenu

	* scwmmenu.c: lots of new code to get drawing of the new menus and
 	popping up to work.  Added popup_menu(). Implementation is not
 	complete.

	* scwmmenu.h:  Added MenuDrawingInfo struct for caching
	information that the drawing code might use.  Changes to the
	DynamicMenu structu
	
	* scmprocs.c: added popup-menu function, for the new scwm menu
	code

	* scwm.c: call the new init_scwm_menu() [does nothing now]
	
	* menu-test.scm: Added for testing new menu code

	* colormaps.h: Added, for colormaps.c protos;  use where needed
	throughout;  pull these out of misc.h

	* colormaps.c: fixed protos to be (void) not ()

	* font.[ch]: use FONT_IMPLEMENTATION for file-globals, added
	SAFE_FONTP (perhaps this should be done for all the OBJECTP
	macros)

	* drawmenu.[ch]: Added, for drawing-only (look) code;  partially
	complete implementation of the fvwm menu look

	* xmisc.[ch]: Added for X/Xlib utility functions

	* Makefile.in: updated for above additions


Sun Nov 23 02:47:22 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* image.c: Rewrite of the image code to support: hashed image
 	cache, garbage collection of all images including ones generated
 	by C code, eq?-ness for multiple loads of the same image, ability
 	to register additional image loaders, and image path in the
 	distinguished Scheme variable image-load-path which is interpreted
 	as containing a list of path strings. Basically, everything has
 	been totally rewritten except the low-level image loading calls,
 	which can't be written much differently. This code is not yet
 	integrated into the rest of the program or the build process.

Mon Nov 17 21:07:44 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* string_token.h: Only give prototypes for strcasecmp and
 	strncasecmp if they are not already defined.

	* string_token.c: Only define strcasecmp and strncasecmp if they
 	are not already available.

	* system.c: Changed sleep_ms to use usleep() where available,
 	otherwise fall back to select().

Sat Nov 15 00:18:22 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* menuitem.[ch]:  Added;  the beginnings of an scm object for menu
	items to replace those in menu.[ch]

	* scwmmenu.[ch]: Added; the beginnings of an scm object for menus
	to replace those in menu.[ch]

	* Makefile.in: Include above files in build.

	* system.h: Include config.h and #ifdef out get_hostname prototype
 	if we have the function -- patch from Harald Meland
 	<Harald.Meland@usit.uio.no>

	* gjb.scwmrc: add some commented out test code for new menu items
	and scwm menus.

Wed Nov 12 22:57:31 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* window.c: Added current-window-with-{pointer,focus} functions.
	Abstract out SwFromWindow() instead of using the more obscure
	XContext calls inline.  scmprocs.c updated for new functions.
	Also have a place-holder for select-window-interactively, but it
	does nothing right now.

Wed Nov 12 15:41:28 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Fixed the remaining problems with DeferExecution - the
 	event it reads needs to be copied to the global event struct
 	before calling DispatchEvent(). 

	* scwm.c: Use getopt_long when available for argument parsing,
 	otherwise accept both long and short options by
 	hand-parsing. Patch from James LewisMoss <dres@dimensional.com>,
 	slightly reformated, and changed to provide both long and short
 	options for everything.

Wed Nov 12 00:36:21 1997  Greg J. Badros  <gjb@cs.washington.edu>
	* events.c (HandlePropertyNotify): don't resize shaded windows;
	this improves upon my prior bug fix which had an unfortunate
	timing dependence that I only caught after more testing.
	This should be a reliable fix.

	* Abstracted out SHADED_P, SET_SHADED and SET_UNSHADED, since it's
 	a gross field -- the shaded bit just gets thrown into the buttons
 	field's high-order bit; this should be fixed but not now.

Tue Nov 11 22:14:02 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* scwm.c: Fix bug with -f "" core dumping, fixed other bugs nearby
	with argument handling.

	* binding.c: Fixed unbind_mouse to respect the context, and ungrab
	the button;  Added A- and H- modifiers for Alt and Hyper,
	respectively.  Abstract out more code to use
	PchModifiersToModmask, and give better error messages.  All mouse
	button numbers to be specified as Mouse{1..3}, etc.; added a
	recapture when the number of buttons w/ defined actions changes.

	* misc.h: more cleanup

	* resize.h, add_window.h, borders.h, colors.h: added for their
	respective implementations, and moved protos out from misc.h

	* add_window.c, borders.c, colors.c : rearranged function order
 	and made local functions static; diffs are pretty unhelpful for
 	these

	* window.c: fixed bug introduced by cut and paste in last update;
	last fix still does not work for me.
	
	* Updated all includes for the above

Tue Nov 11 18:17:15 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c, window.h, scmprocs.c: Fixed the bug with selecting a
 	window for interactive-move from the root menu. The fix added
 	extra optional arguments to get-window and select-window.

Tue Nov 11 12:49:37 1997  Greg Badros  <gjb@cs.washington.edu>

	* binding.c: Use SCM_BOOL_F to report a bad key binding

	* icons.c: Fix bug wrt application icon window; Thanks Andrei
 	Tcherepanov <tandr@ptc.com>.

Mon Nov 10 20:41:21 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* move.c, window.c: Fix AnimatedShadeWindow()'s handling of
 	windows so that it works with Emacs windows; bug was a result of
 	the resizing of the window causing an extra PropertyNotify event,
 	which caused scwm to think that the newly shaded window had been
 	resized, which then makes it call SetupFrame again and re-expose
 	part of the client window.

	* borders.c: cleaned up SetupFrame a bit while tracking down the
	above bug.  Even found an old bug in fvwm2 (of no obvious
	consequence, though).

Mon Nov 10 10:06:59 1997  Greg Badros  <gjb@cs.washington.edu>

	* bindings.c: just warn when an unknown keysym is attempted to be
	bound, do not die;  uncommented uses in gjb.scwmrc of the
	only-sometimes-available keysyms KP_XX since now they will only
	produce a warning.

Mon Nov 10 05:17:36 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* decor.c, face.c, Picture.c, system.c, ICCCM.c, Grab.c, 
	string_token.c: Added copyright notices.

	* errors.c, errors.h, window.c: Signal an error when the image
 	can't be loaded in set-icon!
	
	* scmprocs.c: Renamed make-picture to make-image and
 	set-picture-path! to set-image-path! (externally only for now,
 	will change all references in C code soon).

	* miscprocs.c, miscprocs.h, scmprocs.c : Renamed set-xor-value! to
 	set-rubber-band-mask!

Mon Nov 10 00:13:29 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* move.c: wrote AnimatedShadeWindow(), similar to
	AnimatedMoveWindow(); visually not quite perfect, but very nice.
	Inspired by AfterStep's animation (did not look at its code,
	though).

	* move.h: Added this -- protos from move.c, removed from misc.h
	
	* window.c: give {un-,}window-shade another optional argument -- a
	boolean saying whether we want the (un-)window-shade-ing to be done
	animatedly

	* borders.c: some general cleanup of formatting due to
	automatically removing the #ifdef-s

	* events.c: removed unused macros MAX_NAME_LEN, MAX_ICON_NAME_LEN
		
Sun Nov  9 14:11:47 1997  Greg Badros  <gjb@cs.washington.edu>

	* Picture.c, window.c: Handle memory management of strings passed
 	to CachePicture better; gh_scm2newstr()-allocated strings must be
 	freed, so we give them a name.  LoadPicture uses strdup to get its
 	own copy of the filename --this was a bug before, as it might have
 	tried to free a local variable, or might have used memory that was
 	owned
 	(and later modified) by someone else.; free_picture() now calls
 	DestroyPicture before free-ing the scheme object.

	* system.c: Added note about char * return value in findFile --
 	that needs to be freed, too.

Sun Nov  9 07:15:45 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Make set-icon! and set-mini-icon! able to take strings
 	as well as pictures to be consistent with the handling of colors
 	and fonts by other functions.
	
Sun Nov  9 07:15:45 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* face.c: Restore the calls to redraw_borders, since it is now
 	fixed.

	* util.c: Fixed the bug in redraw_borders - it turned out not to
 	be a problem with SetBorderX at all, but rather with some code I
 	mindlessly copied.

	* util.c: Fixed redraw_borders so that it works for now (but is
 	somewhat unattractive).

	* Picture.c, Picture.h, scmtypes.c: Removed mark_picture;
 	scm_mark0 can be used as the marker when no sub-objects need to be
 	marked.

Sun Nov  9 00:00:15 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* icons.c: rearranged and improved the interface specification;
	non-public functions are now static

	* icons.h: added, pulled relevant protos out of misc.h; #include
	it as appropriate

	* menus.c: make LEFT_MENUS be the single version, remove those
	conditionals (fvwm2 menuing code was really broken w/o this
	option); also removed FindPopup() function
	
	* removed #include "module.h" from all files; remove module.h

	* removed #include "parse.h" from lots of files; still not
	completely unneeded yet

	* scwm.h reduced the redundancy in the ScwmWindow's icon handling; now
	picIcon has all the pixmap information about the icon, instead of
	having everything at the top level of the struct; use macros from
	icons.h to make accessing the new fields not so bad

	* Fixed the bug that prevented the current window from getting the
	focus initially at startup (long-time fvwm2 bug,
	too). CoerceEnterNotifyOnCurrentWindow() is added to misc.c

	* misc.h Still more clean up

	* Fixed the bug that prevented mini-icons from being redrawn once
	they are changed

	* string_token.c: Remove GetNextToken() function; last use of it
 	was obliterated; fixed protos in header to checking MISSING_STRCASECMP

	* Renamed lots of ScwmWindow *tmp_win arguments to *sw.  My
	pet-peeve about variable names is tmp -- all auto variables and
	formals are tmp, so it's redundant.  In this case the short
	Hungarian tag is really nice!

	* Rename the global "Tmp_win" to swCurrent; Tmp_win was a
 	  *terrible* name!; fixed extern refs that use this


Sat Nov  8 20:18:26 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* Added picture object; use (make-picture "pic-filename")

	* Combined PixmapPath and IconPath into one variable:
	szPicturePath;  set with set-picture-path!
	[set-{icon,pixmap}-path! have been removed]

	* Permit pixmap arguments to still be strings, but also allow
	pixmap objects.  Improved the caching and sharing is almost
	complete, so little memory is wasted

	* Cleaned up GetXPMFile() to use CachePicture code; these changes
	still are making scwm smaller!  We're under 20klines of commented
	source!

Sat Nov  8 14:54:59 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* misc.[ch]: Lots of cleanup
	
	* builtins.c: removed from the build

	* Started pixmap/picture re-implementation

Thu Nov  6 10:59:36 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Change set-mini-icon! to load the mini-icon file when
 	appropriate. This makes the #:mini-icon style option work.

	* paths.c, Makefile.in, envvar.c: Stop using the code in envvar.c
 	for environment variable expansion in paths and remove it from the
 	build process as well as from the repository.

Wed Nov  5 09:24:21 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* wildcard.c, wildcard.h: Removed because they are not used any
 	more.

	* Makefile.in: Remove wildcard.c from the build process, it's not
 	used any more.

	* add_window.c: Commented out the part of LookInList that scans
 	the style list - there is no style list created anywhere in the
 	code any more so that part of it was never getting executed.

	* miscprocs.c: Change wait-for-window to take a predicate rather
 	than a name string, so we don't have to use matchWildcards. You
 	can pass (wildcard-matcher NAME) to get the old effect (and for
 	that matter, you could just bind the 'new-window event, so
 	wait-for-window will go away entirely sometime).

	* builtins.c: Deleted all the Decor stuff, it is not needed any
 	more.

	* window.c: Added a check that an object passed to a window
 	operation is non-immediate (using the SCM_NIMP macro) before
 	checking if it is a window (using WINDOWP). 

Tue Nov  4 11:57:37 1997  Greg Badros  <gjb@cs.washington.edu>

	* Lots of code cleanup;  integrate the few functions from libs/*
	into the scwm directory. Removed MS_DELETION_COMMENT blocks.
	Added some GJB_DELETION_COMMENT blocks for newly obsoleted code.

Tue Nov  4 13:45:31 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* face.c, face.h: Added scheme-level procedures set-title-face!,
 	set-button-face!, set-button-mwm-flag! and
 	set-border-face!. Changing the border, button and title styles
 	should now be possible, although a higher-level interface still
 	needs to be written. Also, redraws are not done immediately for
 	anything but set-title-face!, because of a bug in
 	SetBorderX. Added appropriate prototypes.

	* util.c, util.h: New function redraw_borders to redraw borders of
 	all windows associated with a decor. However, it doesn't work
 	right now, as SetBorderX appears to be buggy. Added prototype for
 	redraw_borders.
	
Mon Nov  3 11:20:17 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* Further changes that should bring things really close to user
 	face handling; only set-button-face! and friends need to be
 	written now.

	scwm.c: Changes to initialization of the default decor, and
 	decor initialization in general to support the creation of the
 	initial button, border and title faces as Scheme objects
 	
	face.c, face.h: Added creation of the default button, title and
 	border faces as Scheme bjects in the variables
 	default_titlebar_face, default_rbuton_face[],
 	default_lbutton_face[] and default_border_face.

	decor.c, decor.h: Added mark_decor, a new gc marker function that
 	marks all of the face objects associated with a decor object, so
 	garbage collection is happy. Also made make-decor initialize the
 	button, title and border faces from the defaults.

	* colors.c: Changed shadow handling in GetShadow slightly; don't
 	mod by %0xffff any more so very bright colors are not
 	automatically shadowed with black.

Sun Nov  2 00:20:29 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* add_window.c, borders.c, builtins.c, face.c, functions.c,
 	screen.h, scwm.c: Made changes throughout so that ButtonFace
 	structs are only ever used through pointers; this prepares for the
 	change of using scheme face objects everywhere, which in turn
 	should make Scheme access to button, border and title syles
 	feasible.

	* Makefile.in: Added face.c to the build process.
	
	* scmprocs.c, scmtypes.c, scwm.c, screen.h: Uodated appropriately
 	for face-related procedures, types, initialization, and data

	* face.c, face.h: New files, a start on implementing fvwm's
 	{Button,Border,Title} Styles. For now, face objects (the back end
 	behind fvwm's assorted style commands) can only be created (using
 	make-face) and print and garbage-collect properly. They cannot yet
 	be associated with buttons, titles or borders.
	
Sat Nov  1 04:44:44 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* events.c: Changed return values of send-button-press and
 	send-key-press from SCM_UNDEFINED to SCM_UNSPECIFIED.

Wed Oct 29 08:41:01 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* scwm.c: Fixed silly bugs in the implementation of the -e and -f
 	options.

Mon Oct 27 06:53:54 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* miscprocs.c: Added support for
 	set-smart-placement-is-really-smart!,
 	set-click-to-focus-passes-click!, set-click-to-focus-raises! and
 	set-mouse-focus-click-raises!. These are obscure, but being able
 	to have click-to-focus without raising the window is nice.

	* events.c: When not raising on click-to-focus, don't raise
 	regardless of where the click comes from.

Sun Oct 26 01:05:27 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* color.c, decor.c, font.c, menu.c, window.c: changed all of the
 	printer functions, print_color, print_decor, print_font,
 	print_menu and print_window to be able to use either the old
	guile printing functions or the new ones.

	* window.c: Use the correct one of gh_vref or gh_vector_ref,
 	depending on what we have.

Sat Oct 25 23:15:40 1997 Greg J. Badros  <gjb@cs.washington.edu>

	* Added send-button-press for synthetic keypress events like GWM

Sun Oct 26 01:05:27 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* scmprocs.c: Eliminate use of gh_new_procedureX_X; instead use
 	gh_new_procedure throughout, since gh_new_procedureX_X will be
 	going away in guile.

Sat Oct 25 21:42:36 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* Added extra args to do animated moves to (move-to), also permit
	equivalent movement of the pointer as an option;  added
	AnimatedMoveWindow() to support this, and have it recognize
	"animation-ms-delay" variable; also wrote (set-animation! ..) to
	set the other animation parameters

	* Fix (get-window)/DeferExecution bug

	* Rename sleep_a_little to sleep_ms(), and take ms, not microsecs

	* Updated BUGS, TODO
	

Fri Oct 24 23:31:54 1997  Greg J. Badros  <gjb@cs.washington.edu>

	* Added (unbind-key), (unbind-mouse)

	* Reindent all of the source using indent

	* Clean up all the code so it builds with -Wall, make that the
	default.

	* Fix bugs in key handling -- required a recapture for
	new bindings to be noticed

	* Added gjb.scwmrc, a more full-featured configuration

	* Updated BUGS, added NEEDED (list of features missing)

1997-10-24  Jens-Ulrik Holger Petersen  <petersen@kurims.kyoto-u.ac.jp>

	* Makefile.in (mostlyclean): New target.
	(LIBS): Use relative directory to "libs/" for VPATH.
	(INCLUDES): Ditto for "include/".

	* deskpage.c (desk_size): Make result consistent with
	`set-desk-size!'. 

Thu Oct 23 19:54:16 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* Added support for decors as Scheme objects. This includes the
	following changes:

	decor.c, decor.h: new files which implement make-decor, default-decor,
	current-decor, set-current-decor! and set-window-decor!

	scwm.c: wrap the default decor as a nice Scheme object.

	window.c: protect the decor attached to a window from garbage
 	collection in the marker for window.

	scmtypes.c: register the decor type.

	scmprocs.c: register the decor procedures.

	Makefile.in: add decor.c to the build process.

Tue Oct 21 21:03:03 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Don't attempt to redraw the border in
 	set-mwm-buttons!; it is now called only on 'new-window-hint, not
 	'new-window because the MWM_BUTTON_FLAG bit clashes with the
 	MAXIMIZE bit.

Mon Oct 20 15:40:48 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Changed set-mwm-buttons! to actually set the MWMButton
 	flag, not the MWMBorder flag.

Sat Oct 18 00:04:40 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* miscprocs.c, miscprocs.h, scmprocs.c: Fixed scm-quit to take any
 	number of arguments. Patch from Mikael Djurfeldt <mdj@nada.kth.se>

	* virtual.c: Commented out: changeDesks_func, changeWindowsDesk,
 	scroll, goto_page_func.

	* Makefile.in: Removed bindings.c from the build process.

	* bindings.c: Commented this whole file with #if
 	MS_DELETION_COMMENT

	* window.c: Added another optional argument to get_window which
 	can be used to supress selecting a window.
	
	Added handling to the interactive-move procedure to start moves in
 	the right place.
	
	Changed show_titlebar and hide_titlebar to check the current state
 	of the titlebar before asking.
	
	Added set-lenience! procedure which sets the lenience flag.

Fri Oct 17 19:30:20 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.h: Changed header for get_window.

	* scwm.h: Added macros for Broadcast, BroadcastConfig and
 	BroadcastName which do nothing.

	* scwm.c: Commented out several portions of unused code, including
 	the StartupStuff function.

	* windows.c: Commented the whole file; it is gone from the build
 	process.
	
	* style.c: Commented the whole file; it is gone from the build
 	process.

	* resize.c: Comented out the move_window function, which is no
 	longer used.
	
	* move.c: Comented out the move_window function, which is no
 	longer used, and fixed InteractiveMove so that moves are started
 	where the motion begins, not where the mouse cursor is when a move
 	is detected.

	* module.c: Commented out the whole file. It is no longer in the
 	build process so this is redundant, but it is a useful reminder.

	* misc.h: Commented out some of the prototypes for module
 	functions; several have been replaced by macros.

	* menus.c: events.c: Commented out some no longer used code with
 	pairs of "#ifdef MS_DELETION_COMMENT" and "#endif /*
 	MS_DELETION_COMMENT */" for easy removal later. Also explicitly
 	undefined MS_DELETION_COMMENT at the top of the file just in
 	case. One deletion is in HandleKey and HandleButton, where
 	ExecuteFunction used to be called. It is no longer possible for
 	flow control to reach this point, and ExecuteFunction no longer
 	exists. Also, the DestroyMenu function was removed.

	* functions.c: Commented out some no longer used code with pairs
 	of "#ifdef MS_DELETION_COMMENT" and "#endif /* MS_DELETION_COMMENT
 	*/" for easy removal later. Also explicitly undefined
 	MS_DELETION_COMMENT at the top of the file just in case. The
 	function ExecuteFunction and most entries in the func_config array
 	were removed.

	* focus.c: Changed SetFocus to correctly handle windows with a
 	focus style of 'none.

	* events.c: Commented out some no longer used code with pairs of
 	"#ifdef MS_DELETION_COMMENT" and "#endif /* MS_DELETION_COMMENT
 	*/" for easy removal later. Also explicitly undefined
 	MS_DELETION_COMMENT at the top of the file just in case. The two
 	deletions are in HandleKey and HandleButton, where ExecuteFunction
 	used to be called. It is no longer possible for flow control to
 	reach those points, and ExecuteFunction no longer exists.

	* complex.c: Commented out a lot of no longer used code with
        pairs of "#ifdef MS_DELETION_COMMENT" and "#endif /*
        MS_DELETION_COMMENT */" for easy removal later. Also explicitly
        undefined MS_DELETION_COMMENT at the top of the file just in
        case. Functions removed are:

        ComplexFunction,expand

	
	* builtins.c: Commented out a lot of no longer used code with
 	pairs of "#ifdef MS_DELETION_COMMENT" and "#endif /*
 	MS_DELETION_COMMENT */" for easy removal later. Also explicitly
 	undefined MS_DELETION_COMMENT at the top of the file just in
 	case. Functions and variables removed are:
	
	Maximize, WindowShade, Bell, add_item_to_menu, add_another_item,
 	destroy_menu, add_item_to_func, movecursor, iconify_function,
 	raise_function, lower_function, destroy_function, delete_function,
 	close_function, restart_function, exec_setup, strerror,
 	exec_function, refresh_function, refresh_win_function,
 	stick_function, wait_func, focus_func, warp_func, echo_func,
 	raiselower_func, SetEdgeScroll, SetEdgeResistance,
 	SetColormapFocus, SetClick, SetXOR, SetOpaque, SetDeskSize,
 	setPixmapPath, setIconPath, ModulePath, setModulePath, SetHiColor,
 	SetMenuStyle, LoadIconFont, LoadWindowFont, Circulate, PrevFunc,
 	NextFunc, NoneFunc, WindowIdFunc, module_zapper, Reborder.

	* Makefile.in: Added VPATH support.

	* add_window.c: AddWindow: eplace the call to resize_window with a
 	call to interactive_resize since resize_window is gone now.

	* binding.c: find_mouse_event_type: also store the location of the
 	original event for use by interactive moves.

Thu Oct 16 00:36:06 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* Makefile.in: Removed read.c, module.c, windows.c and style.c
 	from the build process.

Tue Oct 14 01:13:59 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Added many new procedures to support window styles:
 	set-mwm-buttons!, set-mwm-border!, set-icon!, set-mini-icon!,
 	set-hint-override!, set-decorate-transient!, set-mwm-decor-hint!,
 	set-mwm-func-hint!, set-PPosition-hint!, set-OL-decor-hint!,
 	set-start-on-desk!, set-skip-mapping!

	* miscprocs.c: Added Scheme beep procedure which encapsulates
 	XBell.

	* borders.c: Added SetBorderX and redefined SetBorder in terms of
 	it to allow the border and title to be redrawn correcly on
 	interactive options changes.

	* add_window.c: Made several changes to AddWindow to support
 	Scheme callbacks upon the creation of a new window. Specifically,
 	run_new_window_hint_hook and run_new_window_hook are run at the
 	appropriate places.

	* binding.c: Added the 'new-window-hint event to take care of
	some issues relating to creating new windows and the time at
	which hint settings must be available.

Sun Oct  5 16:20:26 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Added many new procedures that should be useful for
 	both style purposes, and in some cases also for binding to
 	interactive commands.  The following have been added: keep-on-top,
 	un-keep-on-top, kept-on-top?, show-titlebar, hide-titlebar,
 	titlebar-shown?, normal-border, plain-border, border-normal?,
 	set-border-width!, stick-icon, unstick-icon, icon-sticky?,
 	set-icon-box!, set-window-focus!, set-window-colors! and
 	set-icon-title!.

	* binding.c: Added bind-event procedure to enable binding hooks
 	for special window manager events. Currently, only the 'new-window
 	event is implemented. Also added the run_new_window_hook()
 	procedure for C to let the code that initially decorates a window
 	do this.

	* add_window.c: AddWindow() - changed to call the new window
 	hook. This will enable handling of style options on window
 	startup.

	* events.c: Changed handling of MapNotify event to deal properly
 	with windows that start out iconified.

Wed Oct  1 21:47:36 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Added keep-on-top, un-keep-on-top, and kept-on-top?

Wed Sep 24 16:46:22 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* binding.c,color.c,font.c,miscprocs.c,paths.c,window.c: Changed
 	deferring and allowing of ints to hopefully make things
 	thread-safe.

Mon Sep 22 00:09:43 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* binding.c: Fixed nasty bug; previously forgot to gc-protect the
 	scheme procedure in a mouse binding,

	* binding.c: Corrected mouse bindings for buttons.

Sun Sep 21 09:22:26 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* window.c: Implemented select-window. This means that window
 	operations off of root menus and such should be happy.

	* window.c: Renamed get-window-position, get-window-size,
 	get-window-id, get-window-desk, get-window-title and
 	get-window-list to window-position, window-size, window-id,
 	window-desk, window-title and list-all-windows. This change and
 	the ones to deskpage.c and miscproc.c are to provide "Schemier"
 	names before the current ones becomes at all established.

	* deskpage.c: Renamed get-display-size, get-desk-size,
 	get-viewport-position and get-current-desk to display-size,
 	desk-size, viewport-position and current-desk respectively.

	* miscprocs.c: Renamed get-pointer-position to pointer-position.

	* events.c: Added error handling to callbacks using
 	call_thunk_with_message_handler.

	* menus.c: Fixed the use of Scheme submenus, and also wrapped
 	callbacks to Scheme code in error handling using
 	call_thunk_with_message_handler.

	* events.c: Added error handling for key and mouse binding
 	callbacks.

	* menus.c: Added correct handling for submenus and error handling
 	for Scheme callbacks.

Fri Sep 19 00:34:05 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* util.c: Added call_thunk_with_message_handler; this will enable
 	us to handle errors in callback code.

	* window.c: Added get-window-position, get-window-size,
 	get-window-id, get-window-desk, get-window-title and
 	get-window-list procedures. It should now be possible to get more
 	useful info on windows at runtime, and also write "window list"
 	type procedures in Scheme.	

Thu Sep 18 01:27:08 1997  Maciej Stachowiak  <mstachow@mit.edu>

	* menu.c: Added a marker for menu objects, so their thunks and
 	submenus don't get GC'd.

	* Imakefile: Added deskpage.c to the build process.

	* deskpage.c: New file. Adds procedures set-current-desk!
  	set-viewport-position!, set-edge-scroll!, set-edge-wrap!,
 	set-edge-resistance!, set-desk-size!, get-display-size,
 	get-desk-size, get-viewport-position, get-current-desk.

* window.c: Added move-window-to-desk operation.

	* Imakefile: Added paths.c to build process.

	* paths.c: Added set-pixmap-path! and set-icon-path! functions.

Wed Sep 17 09:44:56 1997  Maciej Stachowiak  <mstachow@mit.edu>
	
	* miscprocs.c: Added get-pointer-position, move-pointer-to,
	recapture, restart and wait-for-window procedures.
	
