Hi, all.
I know that I should be using SF's bug machine, but it appears to be heavily overloaded at the moment.
I just checked out the CVS trunk, and built it. It is -really- looking good.
The current key bindings for selecting a drawing tool are wonderful. However, neglecting to release a key before its corresponding tool is used causes side effects. For example:
Hold down the 'p', and start drawing using the freehand tool. You will get an error and a crash:
** ERROR **: file draw-context.c: line 1142 (spdc_add_freehand_point): assertion failed: (dc->npoints > 0) aborting...
A suggested fix for this particular problem would be ultra simple. Repeated keystrokes are hitting this function, but any invocations after the first are being processed without giving them a new point. (Which seems proper). Instead of failing hard, fail soft:
At draw-context.c line 1142, replace:
g_assert (dc->npoints > 0);
with
if (dc->npoints < 1) return;
This 'soft fail' seems to be indempotent, and I don't see any side effects. g_assert() is a bit harsh, anyway, IMHO.
HOWEVER, this just fixes a particular symptom. The general case of repeating keys during a draw operation needs attention.
Keep up the good work!
Bob Jamison Titan Corp.