Do not create new wl_pointer objects when creating pointer gestures

get_pointer is the method belonging to QtWayland::wl_seat creating new
wl_pointer instead of using the already existing one. Since they were
tracked nowhere they where also leaked.

Pick-to: 6.7
Change-Id: I0b9d1914ea6a9e7b379fad905a319bde5fd7f136
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
This commit is contained in:
David Redondo 2024-02-01 13:40:27 +01:00
parent d82cbae72d
commit b0129c6af8

View File

@ -448,9 +448,9 @@ void QWaylandInputDevice::seat_capabilities(uint32_t caps)
MaxTouchPoints, 0, QString(), QPointingDeviceUniqueId(), this);
QWindowSystemInterface::registerInputDevice(mTouchPadDevice);
mPointerGesturePinch.reset(pointerGestures->createPointerGesturePinch(this));
mPointerGesturePinch->init(pointerGestures->get_pinch_gesture(get_pointer()));
mPointerGesturePinch->init(pointerGestures->get_pinch_gesture(mPointer->object()));
mPointerGestureSwipe.reset(pointerGestures->createPointerGestureSwipe(this));
mPointerGestureSwipe->init(pointerGestures->get_swipe_gesture(get_pointer()));
mPointerGestureSwipe->init(pointerGestures->get_swipe_gesture(mPointer->object()));
}
} else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && mPointer) {
mPointer.reset();