[LWN Logo]
From: "Greg Haerr" <greg@viewml.com>
To: <nanogui@linuxhacker.org>
Date: Tue, 23 Jan 2001 18:47:36 -0700
Subject: [Handhelds] Microwindows 0.89pre7 released

The long-awaited 0.89pre7 is _finally_ released, and is available at:

There are some major enhancements in this release, as well as
many small additions and bug fixes required to run well on PDAs,
WebPADs, and set-top boxes.  Some of the major enhancements 

o Complete scancode-mode keyboard driver rewrite.  The Microwindows
keyboard interface is now complete, and all applications now have
access to separate keydown and keyup events for every key on
the keyboard, including function keys, shift/ctrl/alt, as well as additional
keys found on things like the iPAQ.  In addition, all keystrokes are
reported with a unicode value (read from the Linux kernel tables) as
well as an up/down scancode.  This modification changed some of the
earlier contributed keystroke API and it's now far simpler to catch
any keystroke without additional decoding.  This modification was
required for the Doom port to Microwindows, available from the ftp
site.  See mwtypes.h for the new keynames.  The scancode driver
is enabled by setting KBDSCAN=Y in the config file.  The X driver
has been updated as well so that keystrokes are identical when running
Microwindows on X or framebuffer.

o Microwindows now exits with the PAUSE/BREAK key, rather
than the ESC key.  This change makes it harder to accidentally exit.

o Support was added for the G.Mate YOPY PDA.

o Image support is enhanced with PNG, PBM,PGM and PPM
image decoders (thanks Alex)

o Top-level window movement is many times faster using screen-to-screen
blitting when dragging windows around.  (An option in the window manager
also allows drawing an XOR frame instead for slower systems:

o A very nifty launcher application with an extremely cool set of
screensavers has been added.  Background pixmap support for
tiling, centering and such makes background wallpaper a snap.
A tetris game has been added.  (thanks again to Alex for a heck 
of a lot of work and a great job on all this!)

o Support for 5/5/5 15bpp screens was added.  I finally realized
why my home system 16bpp never looked good!  This change
was required for ongoing work with digital video on Microwindows.

o A pass at a macro-driven Xlib to Nano-X conversion header file,
XtoNX.h, which greatly helps hacking Xlib programs into running easily.

o A number of new API entry points were added, including 
selection api Gr[GetSet]SelectionOwner, GrRequestClientData,
GrSendClientData.  Screen saver support with a new internal
timer mechanism with GrSetScreenSaverTimeout.  GrSetBackgroundPixmap,
GrNewPixmapFromData for X bitmap display conversion.
GrSetWindowTitle, GrSetWindowBorderColor, GrSetWindowBorderSize,
GrSetWindowBackgroundColor for the xfreecell port.

o Extensive automatically generated html/pdf/sgml documentation, which
has been placed in the microwin/doc/nano-X directory.

o FreeType font caching has been added, enabling _much_ faster display
of truetype fonts. (there's still some issues with this, and a change in the
font api will be required for the full fix.)

Some of the big bug fixes that are included are:

o Fix XFree86 4.0 expose event handling when running on newer X11.
o Fixed nasty slow blitting in the X11 screen driver.  (more on this to come)
o Added -mstructure-size-boundary=8 for StrongARM compiles
o Fixed dropped events when running client/server.  This was a big
problem and numerous events were dropped by clients due to a
client/server protocol issue that wasn't handled properly by the client
library.  We've now had to move to a client-side event queue.
o Linker error when building shared libraries fixed

Thanks again to everybody for the extremely numerous contributions and
fixes to this release.  I plan on adding a major improvement to the image/blit
architecture in the next release.

Following is the complete ChangeLog, including the 6b and unreleased
6c revisions since 0.89pre5:

Version 0.89pre7 - 21st Jan 2001 - greg@censoft.com
 * moved config.* files to Configs directory and added README
 * moved caching devfont.c to devfont.caching.c (breaks ftdemo)
 * added extensive gtkdoc sgml/html/pdf nano-X documentation from Alex
 * wrote Xlib to Nano-X macro hdr file for easier porting (XtoNX.h)
 * added Alex's improved server timeout routines (no alarms)
 * converted demo3 to nxview image viewer
 * added time field in GR_EVENT_BUTTON for double-click determination
 * fixed fast window move blit bug with non-root child windows
 * added useful macro functions: GrSetWindowTitle,GrSetWindowBorderColor,
  GrSetWindowBorderSize, GrSetWindowBackgroundColor
 * ported xfreecell to nano-X
 * added GrNewPixmapFromData to create pixmap from bitmap data
 * added Alex's GrSetBackgroundPixmap, GrBell
 * added Alex's cool screensaver app nsaver, GrSetScreenSaverTimeout
 * added Alex's getselection/setselection demos,
  Gr[GS]etSelectOwner, GrRequestClientData, GrSendClientData
 * enhanced nxclock and ftdemo
 * fix shared library bug w/GetSysCharHeight function
 * fixed MwRegisterInput/Output/Except bug (Yang)
 * fixed Arch.rules for Solaris 7
 * fix antialiasing bug when both T1lib and Freetype enabled (Murphy)
 * fixed GrReadArea offset bug (Dave Tubbs)
 * added MWPF_TRUECOLOR555 for 16 bpp 5/5/5 packed pixels
 * fixed 5/5/5 driver for ATI card
Version 0.89pre6c (unreleased) 8th Dec 2000 - greg@censoft.com
 * new scancode kbd driver: ESC never quits, pause/break quits
  select with SCANKBD=Y in config (default)
 * added Brent's changes for VxWorks port
 * added PNG image decoding from Alex
 * fixed GrGetNextEvent returning event twice when signal caught (Alex)
 * fixed XPM loader errmsg on non-XPM images from Alex
 * added launcher application from Alex
 * added HAVE_PNM_SUPPORT for PBM,PGM,PPM ascii&binary images from Alex
 * added ntetris game from Alex
 * fixed FREETYPE_FONT_DIR in engine/Makefile
 * added freetype font caching to devfont.c (experimental) (huge speedup)
 * added -mstructure-size-boundary=8 for ARM compiles and structure bugs
 * changed MOUSE_POSITION to ..._MOTION in scribble for better recognizer
 * fixed nasty slow blitting code in X11 driver
 * added USE_EXPOSE config option for XFree4.0 backing store expose fix
 * added iPAQ scancode keyboard driver
 * added YOPY mouse driver and YOPY build support
 * fixed dropped events bug in client/server!!
 * send UPDATE_MOVE to all children on window move
 * finished fast screen blit move algorithm for topmost windows
 * auto calculation of virtual screen size
 * change GR_EVENT_MOUSE subwid to always be mouse window (Peter)
 * added auto-repeat to scancode tty driver
 * fixed buggy GrGetRegionBox
 * fixed X11 screen->offscreen blit
 * fixed blit with negative src clipping
 * added GR_MODE_EXCLUDECHILDREN clip mode to GrSetGCMode
 * added window resize to nanowm and #define OUTLINE_MOVE
 * changed GrInjectPointerEvent visible arg semantics
 * converted x11 kbd driver to scancode
 * added MWKEY_* defines, changed kbd modifiers
  removed GR_MODIFIER_*, GR_SPECIAL_*, GR_KEYSTROKE_* defines
  api change: GR_EVENT_KEYSTROKE to return unicode only values
  api change: GrInjectKeyboardEvent
 * complete keyboard driver rewrite: scancode, up/down events
 * ported Doom! to Microwindows
 * fixed overlapping blit for 8/16 bpp
 * added current mouse coords in SCREENINFO struct
 * started on Wt widget set port
Version 0.89pre6 - 12th Nov 2000 - greg@censoft.com
 * added Peter's driver blit fix for dst in src rectangle
 * added Scott's correct GdFillPoly routine (uses malloc/qsort)
  works for irregular polygons, concave, convex with holes
 * added config.ipaq for pre-built ipaq build configuration
 * added -lm to LDFLAGS when T1LIB or FREETYPE is used
 * added FLIP_MOUSE_IN_PORTRAIT_MODE #define to engine/devmouse.c
 * added Vladimir's nxlsclients and nxev programs
 * GrCopyArea optimization fix for windows with no eventclients (slider)
 * added Kim's SH3 reversed order fblin4sh3.c driver
 * added support for SuperH compilations (LINUX-SH)
 * added Jordan's convxpm.perl xpm to rgb converter
 * added Brent's alloca patch
 * fix update map/unmap events sent only on actual unmap/map
 * fix window manager to map parent before reparent for unmapcount bug
 * allow GdStretchBlit to width/height of 0 without error
 * remove GsError for GrNewPixmap of 0 width or height
 * change to service all kbd data in single poll loop
 * change low level clipping to always clip child windows
 * fix server clear allocated pixmaps before drawing to them
 * fix blit code after xor in X11 driver for nxterm

Have fun!



Handhelds mailing list