diff options
author | Roman Genkhel <roman.genhel@lge.com> | 2022-06-29 18:05:21 +0300 |
---|---|---|
committer | Elvis Lee <kwangwoong.lee@lge.com> | 2022-06-30 08:56:55 +0000 |
commit | 64dac044e3677ff99e103ab7f6980309967c68af (patch) | |
tree | 70308f29531fc1ae65cc8cf35bc57d38f0e8e28d /src/compositor | |
parent | 1d133bf63ebd18bba58e9351927373c1452fc7ec (diff) | |
download | qtwayland-64dac044e3677ff99e103ab7f6980309967c68af.tar.gz |
Check m_dragFocusResource for nullptr in DataDevice::dragMove
We encounter situation where 'dragMove' was called for
DataDevice`s instance, but 'data_device_start_drag' did not called
or 'drop' was called before, because even all m_drag* pointers
including m_dragOrigin were nullptr
Pick-to: 6.3
Change-Id: Ic435286a77e273167b1aa812cbf18a7fbf3489f2
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/compositor')
-rw-r--r-- | src/compositor/wayland_wrapper/qwldatadevice.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compositor/wayland_wrapper/qwldatadevice.cpp b/src/compositor/wayland_wrapper/qwldatadevice.cpp index 000ec6c9..2604bc06 100644 --- a/src/compositor/wayland_wrapper/qwldatadevice.cpp +++ b/src/compositor/wayland_wrapper/qwldatadevice.cpp @@ -101,7 +101,7 @@ void DataDevice::dragMove(QWaylandSurface *target, const QPointF &pos) { if (target != m_dragFocus) setDragFocus(target, pos); - if (!target) + if (!target || !m_dragFocusResource) return; uint time = m_compositor->currentTimeMsecs(); //### should be serial send_motion(m_dragFocusResource->handle, time, @@ -124,7 +124,7 @@ void DataDevice::cancelDrag() { setDragFocus(nullptr, QPoint()); } - + void DataDevice::data_device_start_drag(Resource *resource, struct ::wl_resource *source, struct ::wl_resource *origin, struct ::wl_resource *icon, uint32_t serial) { m_dragClient = resource->client(); |