Vern 2.1 beta changes

///////////////////////// Changes /////////////////////////
Aug 17/98
- It was possible for Vern to end up in an endless loop that
  would chew up all available system resources and result in
  a stack overflow, this has been fixed.
- Some problems with repaints were fixed (mini-windows not being
  erased after closing the window)
  
Aug 10/98
- Locked windows that were locked were not being left in the
  proper cell when dropping a mini-window.
  
Aug 8/98
- I had the autoHide and autoShow delays mixed up in several
  places.  If you've already been using Vern these values
  will now be reversed in the Properties dialog on the options
  tab. Sorry.
- Vern now considers each virtual desktop to be the display
  resolution PLUS two times the width of a window sizing border.
  This better accomodates maximized windows since their borders
  overlap.  This change required quite a bit of internal tweaking
  but so far so good.  It's worth the hassle to not have
  maximized windows overlapping onto adjacent desktops.  This
  adjustment is only performed for single monitor systems.
- Added a docking dialog box.
- Fixed a problem with keyboard accelerators on multi-monitor
  systems that were using more than one Vern selector.
- made 2 baguettes ... Mmmmm.

Aug 7/98
- the mini window for a maximised window does not overlap
  the current cell selection border
- If passive mini windows are being used Vern will only
  activate the top level window if a cell change occurs.
- Vern was setting the last active foreground window after
  an autohide timeout.  This was dumb and is no longer being
  done.
  
Aug 5/98
- Vern was activating itself due to the autoShowDelay even
  though autoHide was not being used
- Only Top Level windows are considered when using the Send
  To Back hotkey.
- If passive mini windows are being used Vern will always
  activate the top level window if one clicks on the Vern
  selector, whether it is the current cell or not.  Vern used
  to only activate the window if a cell change occured.
  
Aug 4/98
- Added Deactivate/Activate Hook menu item (when activated
  Vern recieves window notifications as expected.)  For
  some reason known only to the gods (Bill Gates etc.) Vern
  doesn't work well with some programs.  WS_FTP comes to 
  mind.
- dragging maximised mini-windows was broken
- a bazillion little changes too numerous to mention, most
  are internal
- The timeOut registry value under,

   HKCU\Software\One Guy Coding\Vern\2

  seems to work best at about 500ms, although this could lead
  to spurious results if your machine is heavily burdened.  To be
  safe, the default value is 1000ms.  If this value is too high
  screen changes seems to get sluggish, since Vern will wait for
  up to timeOut milliseconds for each app to respond when switching
  cells.  
  
August 1/98
- If Vern crashes with the Hide Offscreen option enabled windows
  remained hidden and could not easily be retrieved.  This version
  of Vern keeps track of the windows that have been hidden and
  if Vern crashes these windows are restored when Vern is restarted.
- Glue mini-window context menu item is disabled if the window is
  locked.
- You cannot use the screen scroll feature if the window you're
  trying to move is locked.
- Screen scroll wasn't working properly if the hide off screen
  option was selected.
- If a locked window had owned popup windows (toolbars, etc.)
  they were not being properly positioned when the mini-windows 
  were first located on the selector.  This is fixed.
- Vern was using the WM_GETWINDOWTEXT message to detect whether
  a remote window was responding (WM_NULL caused IE4 to crash).
  Vern now uses WM_GETICON as the message passed to
  SendMessageTimeout.

July 30/98
- Automatic activation is better behaved under NT4 and Win95.
- Added mouse wheel support.  If there are more cols than rows
  the sense up UP/DOWN is changed to LEFT/RIGHT.  Hold the Ctrl
  key to move in the opposite direction.
- Enabled use of forceForegroundWindow() for activate deactivation
- Disabled Multi-Monitor options under Win98 (Vern 3 will address
  the changes necessary for Win98 and NT5)
- The Hide Offscreen option was broken in the July 29th release.
  This cause all windows to disappear immediately after switching
  desktops for the first time with this option set.  This has
  been fixed.
- To disable the Show/Hide desktop menu item add the following
  DWORD value to the registry, noHideDesktop in 
  HKCU\Software\One Guy Coding\Vern\2
- I wonder why there are not BYTE, WORD values in the registry?
- New help tip windows in Vern properties dialog.  Clicking
  on the question mark in the caption and pointing to an
  option control will display the help tip for that option.
  This negates the requirement for MS Internet Explorer
  to display help tips.  Microsoft reneged on its promise
  to provide a redistributable solution for viewing HtmlHelp
  files (.chm) without Internet Explorer, and, since many
  would rather go without a 20Mb download just to view my
  help file ...

July 29/98
- mini-windows representing owned popup windows (toolbars
  and the like) are moved along with their owner window
  immediately.  Those same mini-windows will be destroyed
  when the owner window is minimised, although there may
  be a small delay.
- fixed problem with rememeber on Multi-monitor systems
- fixed 'Right/Left' docking window problem
- found a very bizarre bug in my code that was associated
  with locking windows.  Somehow, a test for the existance of
  a C++ object that controls locking was passing even though
  the object didn't exist!  For those programmers out there,
  the function looked something like this,
  
  BOOL lockCell(void) {
     // cl was NULL but (!cl) was returning FALSE
     if (!cl)
       cl = new cellLock;
   
   // same thing here
   if (!cl) return FALSE;
   
   // this call to set() GPF'd because cl was NULL
   return cl -> set();
  }
  
  This function was defined INLINE.  The first test for cl was
  returning FALSE even though cl was NULL, so cl was never created,
  and to top it off, the second test for cl also returned FALSE
  so the call to cl's member function set() was made, but since 
  cl was actually NULL, Vern crashed and burned!  I redefined the
  function as NOT INLINE (what do ya call that?) and the bloody
  thing worked as expected.  This seemed to happen only periodically
  as well which was even weirder.  If anyone knows why this is
  happening (in MS VC++ 5.0 with patches) I'd be interested to hear
  why.
  
July 26/98
- added remember option (remember in which cell a window is minimised
  and restore it to that cell)
- added some multiple monitor options
- can use the "Space" key in hotkeys
- selector repaints are neater
- added a 'flat' registry hack.  When used Borders are not drawn
  on the vern selector.  Set a DWORD value of 1 for 'flat' under
  HKCU\Software\One Guy Coding\Vern\2
- when passive mini-windows are being used the 'top level' window
  in the cell is activated when entering a cell
- autohide works under Win98
- added autoshow delay as well.  Now vern will go away, if autohiding,
  after the specified number of microseconds.
- Vern now tests windows to ensure that they are alive before trying
  to move them.  The default timeOut is now 2000ms.  This can be
  lowered in HKCU\Software\One Guy Coding\Vern\2, change the value
  timeOut to be a lower value (I'm having no problems with 50ms so
  far.)  Certain windows programs will hang when performing an
  operation (eg. Excel recalcs) this would cause Vern to hang as well.
- Docking menu added to main context menu.  Dock the Vern selector
  (without caption or sizing borders) along one of the four screen
  edges.  Use the Dock\Float menu item to undock.
- Fixed remember for multiple monitors
- Removed several locations where Vern could potentially GPF.
- mini-window context menu interferes with tooltips
- glue title/class dialog allows on to enter anything in edit control 
  and also lists all window titles or classes in drop list box
- centreDialogs registry key
- tooltips better behaved when moving mini-windows
