--- pkg/qtbase/src/gui/kernel/qguiapplication.cpp Sat Feb 16 14:54:40 1974 +++ pkg/qtbase/src/gui/kernel/qguiapplication.cpp Sat Feb 16 14:54:40 1974 @@ -1506,0 +1507,15 @@ + while (true) { + QWindowSystemInterfacePrivate::WindowSystemEvent *e_ = QWindowSystemInterfacePrivate::peekUserInputWindowSystemEvent(); + if (!e_) break; + if (e_->type != e->type) break; + QWindowSystemInterfacePrivate::MouseEvent *ev = static_cast(e_); + if (ev->buttons != e->buttons) break; + if (ev->modifiers != e->modifiers) break; + if (ev->window.data() != e->window.data()) break; + + e->localPos = ev->localPos; + e->globalPos = ev->globalPos; + + QWindowSystemInterfacePrivate::removeWindowSystemEvent(ev); + } + --- pkg/qtbase/src/gui/kernel/qwindowsysteminterface.cpp Tue Aug 21 18:42:24 1973 +++ pkg/qtbase/src/gui/kernel/qwindowsysteminterface.cpp Tue Aug 21 18:42:24 1973 @@ -375,0 +376,5 @@ +QWindowSystemInterfacePrivate::WindowSystemEvent *QWindowSystemInterfacePrivate::peekUserInputWindowSystemEvent() +{ + return windowSystemEventQueue.peekAtFirstUserType(); +} + --- pkg/qtbase/src/gui/kernel/qwindowsysteminterface_p.h Tue Aug 21 18:38:24 1973 +++ pkg/qtbase/src/gui/kernel/qwindowsysteminterface_p.h Tue Aug 21 18:38:24 1973 @@ -455,0 +456,9 @@ + WindowSystemEvent *peekAtFirstUserType() const + { + const QMutexLocker locker(&mutex); + for (int i = 0; i < impl.size(); ++i) { + if (impl.at(i)->type & QWindowSystemInterfacePrivate::UserInputEvent) + return impl.at(i); + } + return 0; + } @@ -475,0 +485 @@ + static WindowSystemEvent *peekUserInputWindowSystemEvent();