diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/scene/scene_edit.c | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_jobs.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c index 62933178266..1604abb5c3c 100644 --- a/source/blender/editors/scene/scene_edit.c +++ b/source/blender/editors/scene/scene_edit.c @@ -97,6 +97,10 @@ bool ED_scene_delete(bContext *C, Main *bmain, wmWindow *win, Scene *scene) { Scene *scene_new; + // kill running jobs + wmWindowManager *wm = bmain->wm.first; + WM_jobs_kill_type(wm, scene, WM_JOB_TYPE_ANY); + if (scene->id.prev) scene_new = scene->id.prev; else if (scene->id.next) diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c index 3a4195ae1ae..dd9e7edf413 100644 --- a/source/blender/windowmanager/intern/wm_jobs.c +++ b/source/blender/windowmanager/intern/wm_jobs.c @@ -500,7 +500,7 @@ void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type) next_job = wm_job->next; if (!owner || wm_job->owner == owner) - if (wm_job->job_type == job_type) + if (job_type == WM_JOB_TYPE_ANY || wm_job->job_type == job_type) wm_jobs_kill_job(wm, wm_job); } } |