0. Bugs and misfeatures
When brush is significant portion of size of screen (slow updates)
   updating appears funny (see transient bands) - does this mean updates
   are done in a funny order?
gxid: XQueryPointer fails disasterously if child vanishes between
   calls. (Which is prone to happening since we get events on root just 
   as the client exits)
We can't restart gxid immediately after failure (because we still have
   old sockets from clients hanging around in TIME_WAIT?). Can we do
   anything about this?
Cosmetic: get rid of gray backgrounds on modifier checkbuttons in 
   input dialog
Start gsumi. Make it terminate improperly. Restart gsumi. Move another
   device while server grabbed. Gsumi crashes before claiming any devices
   with "Bad event".

Drawing with pressure 0 is messed up.
gxid-port options don't work properly.

I. Functionality upgrades

Scroll on drawing off the edge of the screen. (Actually, I think this
   is a bad idea, despite being present in the gimp. It's impossible to
   do accurate drawing in this fashion)
Change color or shape of cursor to indicate device .
Enhanced sensitity (>1, nonlinear) 
About dialog

II. Upgrades with an eye to the gimp

Hot keys.

III. other

Code cleanup

------------------------------------------------------------

COMPLETED
---------

(tons of stuff)

3/18/97
-------
(tons of stuff)
restore core pointer on exit
Check for memory leaks - special attention to mapped's

3/19/97
-------
f: When core device switched, new core device not added
handle autoswitching to core pointer
f: Toolbox not redrawn properly when device disabled (with show/hide hack)
f: segv's when no x/y axis
  	but XFree86 won't let us swap axes fore core/screen devices
f: devices not disabled when GXI_MODE_SCREEN
reset filename to untitled when new file created
update proper region when loading smaller image
f: for save_changes? dialog, if filename is already set, after_action
   doesn't happen
save only when changed

3/19/96
-------
f: Memory leaks? After working on barn.pbm for 0.5 hr, gsumi was
   35 meg, upon reload, only 3!!! This may well be due to
   fragmentation - as we continually free and malloc lines
   (in add band), we get holes that are too small for larger newly
   allocated bands. If this is the problem, it might be best
   solved by a custom allocator that compacts free space ? long term.
   (fix to region.c from RL)

3/20/96
-------
Saving as gzipped
Loading pbm's

f: When loading an image, add_band clips to bitmap->size, but load_image
   puts the width in new_bitmap instead. As a consequence, the image gets
   clipped. load_image is a hack anyway and should get rewritten for speed. RL
   (Added an extra parameter to add_band, remove_band, draw_band, to specify
   the image).

4/1/97
------
Hide cursor for proximity out, core device
Changed all user level interactions to deviceID's

gxid daemon implemented.
Button grabs implemented
Save device state separately for each device. Load on device
   switch.
Overlapping windows handled (pseudo)-correctly. (except for
 windows creating without the mouse leaving the window).
Broke GxiMapper into GxiMapper (base) and GxiXMapper (XInput
  support). Now should compile without need for XInput headers
  or extension.

4/3/97
------
User specified # of grays
User specifiable port/host for gxid
Loading/saving file types like gimp's (determine from extension),
f: Can get into state where continually updating. (Eats all CPU).
    (OK, it always does so, due to idle func)

4/4/97
------
Saved settings (configuration file)

4/5/97
------
Button remapping
Pay attention to aspect ratio for window mapping
Scroll with button
f: Apparent update performance much worse for non-core pointer. 
   (Though area being drawn is similar) Probably because things don't
   get drawn until pointer stops moving. Test by changing update cursor
   calls. (No drawing was done until all rendering was finished, due
   to unwanted short circuit).
Make window mapped mode work properly.
Input dialog: rewrite axes to work in same direction as buttons
f: If clients fail with releasing windows, subsequent clients with same
   window ID will not work properly

4/6/97
------
v0.3 released

4/19/97
-------
Added gtkmenufactory created menus.
Support for saving menu shortcuts
Clear menu item.
f: Make the gxid protocol more reliable 
   possibly select on close events for mapped windows and
   make exclusive windows have an associated window.

4/22/97
-------
Cleared undo's after new or open.

5/3/97
------
More work on making gxid bulletproof against abrupt client 
termination.

f: Do something sensible when toolbox is closed. (Currently, one
   has to restart program to get it back).

7/19/97
-------
v0.5. All the XInput stuff moved to GDK. # of lines down by
50%