Fix T95636: Dragging Material from Asset Browser (Link mode) to Viewport empty space removes this material from all objects
Trust user count to actually delete or not the dragged ID when current dragging is cancelled, since it may be already used by others. NOTE: This is more a band-aid fix than anything else, cancelling drag has a lot of other issues here (like never deleting any indirectly linked/appended data, etc.). It needs a proper rethink in general.
This commit is contained in:
parent
5186a28dec
commit
66328db703
Notes:
blender-bot
2023-02-13 16:16:25 +01:00
Referenced by issue #95636, Dragging Material from Asset Browser (Link mode) to Viewport empty space removes this material from all objects
|
@ -620,8 +620,12 @@ void WM_drag_free_imported_drag_ID(struct Main *bmain, wmDrag *drag, wmDropBox *
|
|||
}
|
||||
|
||||
ID *id = BKE_libblock_find_name(bmain, asset_drag->id_type, name);
|
||||
if (id) {
|
||||
BKE_id_delete(bmain, id);
|
||||
if (id != NULL) {
|
||||
/* Do not delete the dragged ID if it has any user, otherwise if it is a 're-used' ID it will
|
||||
* cause T95636. Note that we need first to add the user that we want to remove in
|
||||
* #BKE_id_free_us. */
|
||||
id_us_plus(id);
|
||||
BKE_id_free_us(bmain, id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue