Vern 2 (c) 1998 One Guy Coding

## Changes ##

===== Mar 10, 1998 =====
** Fixed problem with activating multiple windows associated with
   the same application.  Netscape 4, with multiple top level popups
   comes to mind.
** Added communication with Blanch 1.7 (due for release soon).
   If the Vern Cell Label is the same as the Blanch Page label
   blanch will automatically change to the page in question 
   whenever Vern switches to that cell.
** Added some protection for accidentally identifying a window
   as NOT minimised when in fact it still is (or nearly so.)  There
   is a short time period when a window is marked as NOT iconic but
   it has still not been restored to it's restored position.  Under
   WinNT the iconic position is (x,y) = (-32000,-32000) and under
   Win95 the position is (x,y) = (3000,3000).  Vern would (very
   occasionally) find a window in this state and try to move to
   that position (which is almost certainly off screen, especially
   under WinNT.)
** Added support for multi-threaded window moves during virtual
   screen switches.  This is currently being tested and if you 
   try to turn on this option (in the Options menu) you will be 
   warned to that effect.  When moving a window it is possible
   that that window had frozen (for whatever reason) and when Vern
   got to trying to reposition the window it would also freeze.
   Since there doesn't seem to be a timeout of any kind in the
   SetWindowPos() function I opted to thread the window movements.
   There are several events in this process that I'm unsure of so
   I've opted to add the option as a test option.

===== Mar 08, 1998 =====
** Unintentional screen switches after minimising a window are 
   much less frequent.
** Setup program included with distribution, as well as the
   files vern95.inf and vernnt.inf.  You can install by running
   setup.exe or by right clicking on one of the inf files and
   selecting Install from the context menu.  You can also setup
   without prompts by creating a short cut and including anything
   on the command line (eg., setup.exe noprompt).  The setup program
   and associated inf files add only 28K to the size of the 
   distribution but limit installs to the boot drive in the
   Program Files\One Guy Coding folder.  This is in contrast to
   the installshield distribution, which allowed choosing a destination
   directory, but required a compressed distriubtion size of 800K.
** Readme.txt and Changes.txt were renamed vreadme.txt and vchanges.txt.
** Startup menu entry was moved to the bottom of the options menu
   to prevent accidental disabling of the startup feature.
** Hide desktop menu entry has been added to the main Vern menu.
** Added a hide button to the Priorities tab as well as some info
   concerning the current state of the windows.  The four entries
   under the hide button are Window handle (hex), top left window
   coordinates, width and height and the window class.
** Default window size is now calculated on startup.
** Added context sensitive help to the Options dialog tab.

===== Mar 06, 1998 =====
** Fix for screen scroll when the task bar is not autohiding.
** When the Passive Mini-Windows option is selected, Vern will 
   remember the last window that was active in any cell and
   automatically activate that window whenever that cell is  revisited.
** Vern remembers where a window is after it is minimised.  When you
   restore the window, vern will now switch to the cell in which the 
   window was minimised.
** Registration tab is now working
** If a shortcut called Vern.lnk is found in the startup folder, Vern
   will always replace it with the path to the current version.
** Automatic install via setup.exe and verninst.inf

===== Mar 04, 1998 =====
** Screen scroll is a bit smoother now
** Mini-windows resize as the selector is being resized
** Passive and Screen Scroll have been added to the options tab of
   the Properties dialog box
** A Priority Tab has been added to the Properties dialog box.  This
   is similar to the priorities menu in Vern 1.x.  Window priorities
   may be set as IDLE, NORMAL or HIGH.  I have disabled the REAL TIME
   priority setting since it can completely overtake a system.  If you
   really want to use REAL TIME I may be convinced to add a hack to the
   Vern registry to allow it.
** Screen Scroll now works under Win95 iff you have "Full Window Drag"
   enabled.  Microsoft sells an enhancement to Win95 (it may be included
   in OSR2, I'm not sure) called Plus! (more like, shoulda been der in
   da first place) with a "Full Window Drag" setting.  If you don't have
   Plus! yer **** outta luck for the moment.
** For Multi-Monitor systems that have enabled Vern's multi-monitor
   cababilities, Vern will examine windows when they are created and
   squeeze them to 3/4 of the single display width if they exceed 
   the width of the screen.  The amount that the window is squeezed
   depends on a couple of registry values called sqeezeMul and squeezeDiv
   (3 and 4 respectively).  You can disable this *feature* by resetting
   either or both of these values to naught.

===== Mar 02, 1998 =====
** Fixed caption toggle problem (there is still a minor problem with
   repainting, when the caption is off, associated with this.)
** If auto-activate were off the z-order of the mini windows became
   totally screwed up.  This has been improved substantially.
** Registration code has been added, although the registration tab
   in properties has not yet been enabled.  Those of you who are 
   already registered will not be pestered by the spash screen now.
** ignoring auto activation on close or minimise is now pretty good.
** tweaked the placement of windows in screen switch; still no solution
   for Win95 (other than to switch to NT4, which, IMHO, is the only
   solution for Win95.)
** I'll be releasing some updated help files in the next couple of days.

===== Feb 27, 1998 =====
** Added Passive Mini windows option to Options menu.  If this option is
   set then clicking on a mini window does not activate the window it just
   moves switches to its cell.
** Added Screen Scroll to Options menu.  If set, this option allows you to
   drag the actual windows across screen boundaries.  This only works for
   single monitor configurations at the moment.  The only caveat for this
   feature is that if Vern is autoHiding on one of the edges, it has to be
   shown for the duration of the screen switch, so it flickers on the edge
   of the screen.  
   NOTE: this option does not seem to work in Win95 yet, even if full window 
   drag has been installed in the Plus! package.
   NOTE: this option will not work for NT CMD windows, not now not never.
** Fixed auto hide.
** Fixed hotkey dialog
** Added Send To Back hotkey.  This hotkey send the active window to the
   bottom of the z-order.
** Fixed help crash.

===== Feb 25, 1998 =====
** 3d Mini Windows now look nicer
** Changing 3d Mini Windows or Mini Icons results in a redraw
** Locked windows are drawn sunken with a small red dot in the upper corner
** Current cell is outlined in thick white rectangle
** Movable Windows that are discovered outside of vernspace are moved back
** Mini-Window Z-Order is much better now.  There are a number of events that
   will muck up the z-order but the behaviour is now perty close.
** Owned popups windows are now moving with their parent (if it is, in fact,
   a Movable window).  One exception to this is that if the parent is "Locked"
   the owned popups don't move with the parent.
** Scanning for outlyers (windows that exist outside of Vernspace) is done about
   once every four seconds.  This scan will attempt to move "Movable Windows"
   back onto Vern.
** Window tests are also done about once every 4 seconds (alternating every two
   seconds with the scan described above).  This scan looks for new or expired
   mini-windows, etc.
** Console windows are auto-activated, in a fashion (this will happen within
   about 1 second, on average).  This is done in the same scanning loop as described
   in the previous two changes.
** Initial tests show that Vern's "% Processor Time" is pretty low.  A max of 12%
   with an average of less than 1% (normal usage).  This test was done with performance
   monitor running under WinNT4sp3.  Residual usage (when Vern is idle) is practically
   nil.

===== Feb 20, 1998 =====
** z-order seems to be pretty well under control.
** Owned popups work a bit better now.  Unfortunately, they always stay
   on-screen when switching cells.  I'm probably just missing a bit of
   code that is re-showing the popups.  I'll figure it out.
** If you LOCK a mini-window in a certain cell, you can still drag it to
   a new cell by holding down the Ctrl key when releasing the mini-window.

===== Feb 17, 1998 =====
** Fixed.  When moving a mini-window between cells there was a round-off
error in positioning the window on screen.  I've changed the behaviour of
Vern such that mini-window movement between cells retains the on screen
position.  This helps to avoid having to adjust the window position when
it arrives at a destination screen. 

** Fixed?? a problem with window z-order when moving windows around on the 
vern selector.  The mini-windows were being properly ordered *but* the actual
window was not.  This was not for lack of trying.  Apparently there is an
inconsistancy with the Win32 API function SetWindowPos() and the HWND_TOP
zordering option.  This function was being called, to set the real window
to the top of the z-order, as follows,

SetWindowPos( h, HWND_TOP, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE )

this should have moved the window to the top of the zorder without sizing or
moving or activating the window.  But it was only possible to achieve the
change in z-order by leaving out the SWP_NOACTIVATE flag.  I hacked this fix
by using HWND_TOPMOST in the first call and then HWND_NOTOPMOST in a second
call to the function.

** Fixed??  In a similar vien -- when hiding or showing a window using SW_SHOWNA
or SW_HIDE with the ShowWindow function, the windows z-order was being changed
(this was only apparent if the "Hide off screen" option were set.)  I hacked
my way around this problem by doing,

SetWindowPos( h, NULL, 0, 0, 0, 0,
              SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER | SWP_SHOWWINDOW )

or 

SetWindowPos( h, NULL, 0, 0, 0, 0,
              SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER | SWP_HIDEWINDOW )

It strikes me, IMHO, that it should be documented if SW_SHOWNA or any of the 
other ShowWindow functions actually change z-order.

===== Feb 16, 1998 =====
** This version includes a new help file that was produced with HTMLHELP 1.1.  I
think anyone who's running IE 4 will be able to display this help file without any
problem.  This help system is a new and improved help system that you'll probably
recognise from Win98 and IE4.

** This version of Vern now includes the "Hide off screen" option.  Also note, that the
mini windows now snap to the same relative position within a cell when moving
to another cell.  This should eliminate secondary positioning when moving windows
around on the selector (there are some round-off errors in this still but it works in a
demonstrative sort of way.)  If you have the file hh.exe in the windows directory
(\winnt\system32\hh.exe or \windows\hh.exe) and the help file will not load you may
have to run the update program for htmlhelp.  You can get a copy of this at,

http://www.cam.org/~oneguy/htmlhelp/hhupd.exe

or visit the Microsoft web site.

** The autohide feature, or rather the AutoHide Delay was not working properly, this
has been fixed.  Note also, when a selector is hiding it will not be displayed if the
left mouse button is depressed.  This prevents accidental activation when scrolling
near the edge of the screen (especially on the right hand side.)

** Auto activation immediately after a window has been closed or minimised is now
ignored.  This prevents automatic window switching when closing applications or
minimising applicatiions, which can be very annoying, IMHO.

