Numerous changes, either bug fixes or changes to accomodate the new
Edwin Win32 Screen.
The events have been tweaked.
Several entry points have been exported or written to allow
efficient update of the display character grid by the new Edwin
Win32 Screen driver.
The display code has been fixed. It was seriously broken and then
heavily kludged-upon. Now it does the right thing for WM_PAINT and
WM_ERASEBKGND. This fixes the windows 3.1 problem of repainting the
whole screen of a resize. It would probably be even better to
eliminate WM_ERASEBKGND completely and make the resize code invalidate
the orphan pixels which do not correspond to a character position.
This would prevent the `flash' as the screen is repainted after a
resize and then repainted again after Edwin has decided (or not) to
change the display (line wraps etc) to fit the new size.
Keyboard. Added direct code for all the `function' keys (like PgUp,
f5 etc). Removed MIT_TranslateMessage, which was the wrong thing
because it screwed non-edwin windows (like buttons, dialogs, menus,
...). Most of the keys are now handled specially at the WM_KEYDOWN
level, avoiding WM_CHAR. This makes it possible to generate something
for C-7 and M-C-<key>. This is done in a very US keybaord layout
specific way. The right thing is to ask what the key normally does
(the KEYMAP program on the Developer's network does this) and then do
the emacs thing only if the key is not o-umlaut or
grave-accent-modifier (`deadkey') or whatever.