diff options
-rw-r--r-- | source/blender/blenkernel/intern/text.c | 5 | ||||
-rw-r--r-- | source/blender/editors/space_text/text_ops.c | 6 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_main_api.c | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index b922aabc171..056229ceb1c 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -166,6 +166,8 @@ Text *BKE_text_add(Main *bmain, const char *name) Text *ta; ta = BKE_libblock_alloc(bmain, ID_TXT, name, 0); + /* Texts always have 'real' user (see also read code). */ + id_us_ensure_real(&ta->id); BKE_text_init(ta); @@ -354,7 +356,8 @@ Text *BKE_text_load_ex(Main *bmain, const char *file, const char *relpath, const } ta = BKE_libblock_alloc(bmain, ID_TXT, BLI_path_basename(filepath_abs), 0); - ta->id.us = 0; + /* Texts always have 'real' user (see also read code). */ + id_us_ensure_real(&ta->id); BLI_listbase_clear(&ta->lines); ta->curl = ta->sell = NULL; diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index 4992a73f936..8f7bd83cbf4 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -241,6 +241,8 @@ static int text_new_exec(bContext *C, wmOperator *UNUSED(op)) PropertyRNA *prop; text = BKE_text_add(bmain, "Text"); + /* Texts have no user by default... Only the 'real' user flag. */ + id_us_min(&text->id); /* hook into UI */ UI_context_active_but_prop_get_templateID(C, &ptr, &prop); @@ -307,6 +309,8 @@ static int text_open_exec(bContext *C, wmOperator *op) RNA_string_get(op->ptr, "filepath", str); text = BKE_text_load_ex(bmain, str, BKE_main_blendfile_path(bmain), internal); + /* Texts have no user by default... Only the 'real' user flag. */ + id_us_min(&text->id); if (!text) { if (op->customdata) { @@ -322,8 +326,6 @@ static int text_open_exec(bContext *C, wmOperator *op) /* hook into UI */ pprop = op->customdata; - id_us_ensure_real(&text->id); - if (pprop->prop) { RNA_id_pointer_create(&text->id, &idptr); RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr, NULL); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index d7acbb40bb8..fec991e16da 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -555,6 +555,8 @@ static Text *rna_Main_texts_load(Main *bmain, errno = 0; txt = BKE_text_load_ex(bmain, filepath, BKE_main_blendfile_path(bmain), is_internal); + /* Texts have no user by default... Only the 'real' user flag. */ + id_us_min(&txt->id); if (!txt) { BKE_reportf(reports, |