fill the entire palette with one sweep of the pipette eliminate duplicates interpolate brush strokes mash buttons to cancel brush strokes test new widgets aren't nil when zeroxing free widgets on errors draw transparency with the S operator select colors using the canvas instead of the screen when possible retry log window wctl failures repaint the canvas with an error bitmap if sync fails rewrite scrolling fix b2 down on max pos ebox selection clip to image when the image is resized scroll ants pattern with canvas cut and paste chords don't allow moving or extending the selection beyond the image disable selections that don't intersect the image maybe give w->resize a rect parameter, replacing mode remove CanvasState.dirty Canvas.resizeme and .redrawme fix brush strokes on /lib/bunny.bit memfills remove Rectangle from mkwidget pass mkwidget a prototype widget instead of functions remove toolboxwidget global deselect tools for all canvases when the image is resized don't deadlock when resizing a busy window interrupt the mouse handler paint.c:/^windowproc paint.c:/^focusproc paint.c:/^widgetproc qentry leak test program