summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qapplication.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <[email protected]>2024-11-12 12:34:15 +0100
committerAllan Sandfeld Jensen <[email protected]>2024-11-13 15:22:26 +0100
commitacc3ef6653c710b509e9321663986910f88ac3b4 (patch)
tree42d1b5997e7709bfa618982996e149c390974f27 /src/widgets/kernel/qapplication.cpp
parentbbeb1a8343117fd22fb1abf555d46298c0f370af (diff)
Fix ubsan warning of illegal cast and illegal method call
Avoid casting an event to a type it does not have. Instead use a static accessor class. Pick-to: 6.8 Task-number: QTBUG-99563 Change-Id: Ideb11779b1510cd10a27fb8bc40bcc8e4849bf15 Reviewed-by: Marc Mutz <[email protected]>
Diffstat (limited to 'src/widgets/kernel/qapplication.cpp')
-rw-r--r--src/widgets/kernel/qapplication.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index e8c7598a826..bc6710d1981 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -2762,7 +2762,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
mouse->pointingDevice());
me.m_spont = mouse->spontaneous();
me.setTimestamp(mouse->timestamp());
- QMutableSinglePointEvent::from(me).setDoubleClick(QMutableSinglePointEvent::from(mouse)->isDoubleClick());
+ QMutableSinglePointEvent::setDoubleClick(&me, QMutableSinglePointEvent::isDoubleClick(mouse));
// throw away any mouse-tracking-only mouse events
if (!w->hasMouseTracking()
&& mouse->type() == QEvent::MouseMove && mouse->buttons() == 0) {
@@ -3067,7 +3067,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
#endif // QT_CONFIG(draganddrop)
case QEvent::TouchBegin: {
// Note: TouchUpdate and TouchEnd events are never propagated
- QMutableTouchEvent *touchEvent = QMutableTouchEvent::from(static_cast<QTouchEvent *>(e));
+ QTouchEvent *touchEvent = static_cast<QTouchEvent *>(e);
bool eventAccepted = touchEvent->isAccepted();
bool acceptTouchEvents = w->testAttribute(Qt::WA_AcceptTouchEvents);
@@ -3084,7 +3084,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
while (w) {
// first, try to deliver the touch event
acceptTouchEvents = w->testAttribute(Qt::WA_AcceptTouchEvents);
- touchEvent->setTarget(w);
+ QMutableTouchEvent::setTarget(touchEvent, w);
touchEvent->setAccepted(acceptTouchEvents);
QPointer<QWidget> p = w;
res = acceptTouchEvents && d->notify_helper(w, touchEvent);
@@ -3110,7 +3110,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
const QPoint offset = w->pos();
w = w->parentWidget();
- touchEvent->setTarget(w);
+ QMutableTouchEvent::setTarget(touchEvent, w);
for (int i = 0; i < touchEvent->pointCount(); ++i) {
auto &pt = touchEvent->point(i);
QMutableEventPoint::setPosition(pt, pt.position() + offset);