commit 948a7c9 (HEAD -> blender2.8) Author: Brecht Van Lommel Date: Thu Nov 1 14:18:01 2018 +0100 Fix T57316: material preview icons not updating. The editors update callback was getting the COW datablock, it should be the original where the preview icons are stored. diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index 18806f3..e215941 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -262,13 +262,16 @@ void flush_editors_id_update(Main *bmain, DEG_DEBUG_PRINTF((::Depsgraph *)graph, EVAL, "Accumulated recalc bits for %s: %u\n", id_orig->name, (unsigned int)id_cow->recalc); + + /* Callback for editors to update (icon previews). */ + deg_editors_id_update(update_ctx, id_orig); + /* ID may need to get its auto-override operations refreshed. */ + if (ID_IS_STATIC_OVERRIDE_AUTO(id_orig)) { + id_orig->tag |= LIB_TAG_OVERRIDESTATIC_AUTOREFRESH; + } + /* Inform editors. */ if (deg_copy_on_write_is_expanded(id_cow)) { - deg_editors_id_update(update_ctx, id_cow); - /* ID may need to get its auto-override operations refreshed. */ - if (ID_IS_STATIC_OVERRIDE_AUTO(id_orig)) { - id_orig->tag |= LIB_TAG_OVERRIDESTATIC_AUTOREFRESH; - } /* Inform draw engines that something was changed. */ flush_engine_data_update(id_cow); } diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index a842513..24baf0e 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -114,27 +114,8 @@ static void rna_Material_update_previews(Main *UNUSED(bmain), Scene *UNUSED(scen static void rna_MaterialGpencil_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Material *ma = ptr->id.data; - PreviewImage *preview = ma->preview; rna_Material_update(bmain, scene, ptr); - - /* update previews (icon and thumbnail) */ - if (preview != NULL) { - bool changed = false; - if ((preview->flag[ICON_SIZE_ICON] & PRV_CHANGED) == 0) { - preview->flag[ICON_SIZE_ICON] |= PRV_CHANGED; - changed = true; - } - - if ((preview->flag[ICON_SIZE_PREVIEW] & PRV_CHANGED) == 0) { - preview->flag[ICON_SIZE_PREVIEW] |= PRV_CHANGED; - changed = true; - } - - if (changed) { - WM_main_add_notifier(NC_MATERIAL | ND_SHADING_PREVIEW, ma); - } - } WM_main_add_notifier(NC_GPENCIL | ND_DATA, ma); } @@ -143,7 +124,6 @@ static void rna_MaterialGpencil_nopreview_update(Main *bmain, Scene *scene, Poin Material *ma = ptr->id.data; rna_Material_update(bmain, scene, ptr); - WM_main_add_notifier(NC_GPENCIL | ND_DATA, ma); }