How to drag & drop slate a SWidget ?

Hi,

I have been trying to implement an inventory system and I am strictly working with Slate only where I have designed my own SWidget, and I am now stuck on implementing a drag and drop system that would allow me to drag the items around.

All the information I have retrieved from my searches only deal with C++ mixed with UMG at best, and therefore utilize the “Native” functions, e.g. NativeOnMousePushButtonDown, NativeOnDragDetected, etc.

I have also looked at some examples in the code base, for instance SColorThemes. However, to my understanding, the only thing dragged in this particular case is the “decorator” SWindow, not the actual SWidget that was originally clicked on.

I already know how to get to trigger OnDragDetected. The information I am looking for is how and where do I actually move the position of my widget (which is currently a SCanvas::Flot) ?
Should it be in the “OnDragged” function ? In the “OnDragOver” function ? In the “OnPaint” function ? Somewhere else ?

I would gladly appreciate if anyone could explain the basics of an SWidget with a drag and drop functionality or, perhaps even better, an example of the implementation of such a widget, I would be very grateful.

Thank you.