From e5774282b94772af8822f4e3ab8b24207a450fb8 Mon Sep 17 00:00:00 2001 From: Julian Eisel Date: Thu, 18 Nov 2021 11:23:15 +0100 Subject: Fix asset preview not showing up for current file data-blocks For data-blocks from the current file, the image-buffer for dragging wasn't set at all. This wasn't intentional, dragging things in the Asset Browser should just always show the preview. --- source/blender/editors/interface/interface.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'source/blender/editors/interface/interface.c') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 9f9324505ad..6ad0ef9de18 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -6238,6 +6238,16 @@ void UI_but_drag_set_id(uiBut *but, ID *id) but->dragpoin = (void *)id; } +/** + * Set an image to display while dragging. This works for any drag type (`WM_DRAG_XXX`). + * Not to be confused with #UI_but_drag_set_image(), which sets up dragging of an image. + */ +void UI_but_drag_attach_image(uiBut *but, struct ImBuf *imb, const float scale) +{ + but->imb = imb; + but->imb_scale = scale; +} + /** * \param asset: May be passed from a temporary variable, drag data only stores a copy of this. */ @@ -6266,8 +6276,7 @@ void UI_but_drag_set_asset(uiBut *but, } but->dragpoin = asset_drag; but->dragflag |= UI_BUT_DRAGPOIN_FREE; - but->imb = imb; - but->imb_scale = scale; + UI_but_drag_attach_image(but, imb, scale); } void UI_but_drag_set_rna(uiBut *but, PointerRNA *ptr) @@ -6322,8 +6331,7 @@ void UI_but_drag_set_image( if (use_free) { but->dragflag |= UI_BUT_DRAGPOIN_FREE; } - but->imb = imb; - but->imb_scale = scale; + UI_but_drag_attach_image(but, imb, scale); } PointerRNA *UI_but_operator_ptr_get(uiBut *but) -- cgit v1.2.3