Ежели он пришёл, то значить кнопка ужо отпушшена. А, ежели так, то уже пришёл дроп.
Пришло (уже) MouseReleased, но в предлагаемой схеме (стартовый пост) дроп не выполнялся, мы все еще сидим в processEvents
Тут либо "юзать что фреймворк дал", либо полностью свою логику писать. Только не миксить одно с другим, боже упаси...
А что собсно "фреймворк дал"
Разве есть какие-то указания (прямые или хотя бы косвенные) что драг надо делать на базовых событиях мыша? Мне ни о чем таком не известно. Очевидно что на базовых любой драг сделать можно, но столь же очевидно что этот путь самый примитивный и трудоемкий
А дабл клик - "дело тонкое". Много геморроя с такими решениями, ибо много состояний.
"Состояния" (если мы говорим об одном и том же) плодятся именно вследствие разбросанности ф-ционала драга по 3-4 мышиным событиям.
Не знаю, для меня "очевидным" было решение на мышиных эвентах. "Работает же"
А переписывать имеющийся рабочий код никто не заставляет. Предложенную схему можно юзать для новых драгов.