Всякий раз, когда я пишу код обработки мыши, модель onmousedown / onmouseup / onmousemove всегда вынуждала меня создавать излишне сложный код, который все равно заканчивался бы, вызывая всевозможные ошибки пользовательского интерфейса.
Основная проблема, которую я вижу даже сегодня в основных программах, - это событие «призрачная мышь», когда вы перетаскиваете за пределы окна и затем отпускаете. Как только вы вернетесь обратно в окно, приложение все еще думает, что вы нажали кнопку мыши, даже если кнопка нажата. Это особенно раздражает, когда вы пытаетесь выделить что-то, что выходит за границы экрана.
Есть ли ПРАВИЛЬНЫЙ способ написания кода мыши или вся модель имеет недостатки?