Also, thanks for helping by the way!
I add the component to the player controller like this
.h
public:
TSubobjectPtr<class UElementalGestureListener> GListener;
.cpp (initializer)
GListener = PCIP.CreateDefaultSubobject<UElementalGestureListener>(this, TEXT("GestureListener"));
/*Then I call my drag start/update/end methods from the player controller. Was using delegates, but come to think of it, they were causing issues after a while! They were losing their reference. Possibly the same problem? So I changed and directly called the methods.*/
void AElementalPlayerController::OnSwipeStarted(const FVector2D& AnchorPosition, float DownTime)
...
GListener->OnDragStart(AnchorPosition);
//OnDragStartDelegate.ExecuteIfBound(AnchorPosition); //Breaks after a duration