diff options
Diffstat (limited to 'source/blender/editors/interface/interface.c')
-rw-r--r-- | source/blender/editors/interface/interface.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 67ad4731b18..c59c2d5d517 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -6225,6 +6225,16 @@ void UI_but_drag_set_id(uiBut *but, ID *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. */ void UI_but_drag_set_asset(uiBut *but, @@ -6252,8 +6262,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) @@ -6308,8 +6317,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) |