diff --git a/source/blender/editors/asset/intern/asset_mark_clear.cc b/source/blender/editors/asset/intern/asset_mark_clear.cc index 3b48c741dda..f80bd7b262b 100644 --- a/source/blender/editors/asset/intern/asset_mark_clear.cc +++ b/source/blender/editors/asset/intern/asset_mark_clear.cc @@ -61,7 +61,7 @@ void generate_preview(const bContext *C, ID *id) return; } - ED_preview_kill_jobs(CTX_wm_manager(C), CTX_data_main(C)); + ED_preview_kill_jobs_for_id(CTX_wm_manager(C), id); PreviewImage *preview = BKE_previewimg_id_get(id); if (preview) { diff --git a/source/blender/editors/include/ED_render.hh b/source/blender/editors/include/ED_render.hh index 753321eebdc..2b986b1f25b 100644 --- a/source/blender/editors/include/ED_render.hh +++ b/source/blender/editors/include/ED_render.hh @@ -113,6 +113,7 @@ void ED_preview_restart_queue_add(ID *id, enum eIconSizes size); void ED_preview_restart_queue_work(const bContext *C); void ED_preview_kill_jobs(wmWindowManager *wm, Main *bmain); +void ED_preview_kill_jobs_for_id(wmWindowManager *wm, const ID *id); void ED_preview_draw( const bContext *C, void *idp, void *parentp, void *slotp, uiPreview *ui_preview, rcti *rect); diff --git a/source/blender/editors/render/render_preview.cc b/source/blender/editors/render/render_preview.cc index a9cd70c757b..de533b0e81c 100644 --- a/source/blender/editors/render/render_preview.cc +++ b/source/blender/editors/render/render_preview.cc @@ -2171,6 +2171,14 @@ void ED_preview_kill_jobs(wmWindowManager *wm, Main * /*bmain*/) } } +void ED_preview_kill_jobs_for_id(wmWindowManager *wm, const ID *id) +{ + const PreviewImage *preview = BKE_previewimg_id_get(id); + if (wm && preview) { + WM_jobs_kill_type(wm, preview, WM_JOB_TYPE_RENDER_PREVIEW); + } +} + struct PreviewRestartQueueEntry { PreviewRestartQueueEntry *next, *prev;