Выглядит очень неплохо! А можно это не сюда, а в виде пуллреквеста на гитхабе, чтобы я просто внëс эти изменения?
Есть, правда, одна проблема. Большой код, который сейчас вычеркнут - он более подробный и его гораздо проще и с педагогической стороны более правильно разобрать с детьми. Сама библиотека задумана как второй этап изучения с детьми этой темы.
По сути, убрать EventMouseClicked можно было просто проверяя равенство переменной IDMouseButton и -1. Но я разделил эти два события совсем почему-то. И вот сейчас навскидку не могу вспомнить и объяснить что мне такого "гениального" пришло в голову, что я ввëл эти булевы переменные для мыши и клавы (дело было глубокой ночью и код сначала был без них. Я ввëл их нарочно. Это я точно помню, но не могу вспомнить зачем. Возможно, это в моей голове в этот момент зарождался очередной параграф методички по преподаванию именно этого момента детям не в связке, а, сначала, по-отдельности)