Fix T60350: Removed objects that are still in the outliner will crash Blender.
We need to force UI to fully redraw, BKE_id_delete & co won't do that for us.
This commit is contained in:
@@ -118,6 +118,7 @@
|
||||
#endif
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
|
||||
static void rna_idname_validate(const char *name, char *r_name)
|
||||
@@ -135,6 +136,8 @@ static void rna_Main_ID_remove(
|
||||
if (do_unlink) {
|
||||
BKE_id_delete(bmain, id);
|
||||
RNA_POINTER_INVALIDATE(id_ptr);
|
||||
/* Force full redraw, mandatory to avoid crashes when running this from UI... */
|
||||
WM_main_add_notifier(NC_WINDOW, NULL);
|
||||
}
|
||||
else if (ID_REAL_USERS(id) <= 0) {
|
||||
const int flag = (do_id_user ? 0 : LIB_ID_FREE_NO_USER_REFCOUNT) |
|
||||
|
||||
@@ -44,6 +44,9 @@
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_key_types.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "bpy_capi_utils.h"
|
||||
#include "bpy_rna_id_collection.h"
|
||||
|
||||
@@ -351,6 +354,8 @@ static PyObject *bpy_batch_remove(PyObject *UNUSED(self), PyObject *args, PyObje
|
||||
Py_DECREF(ids_fast);
|
||||
|
||||
BKE_id_multi_tagged_delete(bmain);
|
||||
/* Force full redraw, mandatory to avoid crashes when running this from UI... */
|
||||
WM_main_add_notifier(NC_WINDOW, NULL);
|
||||
}
|
||||
else {
|
||||
goto error;
|
||||
|
||||
Reference in New Issue
Block a user