Slate - Drag & Drop

So I override these functions:

class SMyWidget : public SCompundWidget
{
(...)
	virtual void OnDragEnter(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent) OVERRIDE;
	virtual void OnDragLeave(const FDragDropEvent& DragDropEvent) OVERRIDE;
	virtual FReply OnDragOver(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent) OVERRIDE;
	virtual FReply OnDrop(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent) OVERRIDE;
	virtual void OnMouseEnter(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) OVERRIDE;
	virtual void OnMouseLeave(const FPointerEvent& MouseEvent) OVERRIDE;
}

And so far these doesn’t do anything except return value where approperiate.

My point is that those functions are never triggered when trying to drag over my widget.

Mouse input works for OnMouseEnter and OnMouseLeave.

Is there something special that I need to get Drag & Drop working ?

You have to call BeginDragDrop() on an FReply for the widget you want to begin a drag and drop operation for (probably from the OnDragDetected function for your drag-able widget - see the comment above SWidget::OnDragDetected for how to invoke this function).

SThemeColorBlock has an example of doing this (see SThemeColorBlock::OnMouseButtonDown and SThemeColorBlock::OnDragDetected).

Hey thanks.
I have another question related to it.
I have STileView displaying items (as you probably remember (; ).
Should I create custom class Derived from STileView and implement Drag&Drop here, or should I do it in my custom item (like SMyItem) that is displayed by TileView ?

I’d implement it on your item, that way you can drag each item individually.