Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2018-06-22 14:44:12 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2018-07-06 12:58:13 +0300
commit3cc2a9b934d072fdd817863aa8e93e2416f5c804 (patch)
tree1f599336e956b8de3b7836db2e72c9a896e7aaea
parentdf30b50f2f5ee66e055fc795fea91c0f7f4954d5 (diff)
Fix T55581: kill running (render) jobs when deleting a scene
also fixed passing WM_JOB_TYPE_ANY to WM_jobs_kill_type() Reviewed By: brecht Differential Revision: https://developer.blender.org/D3498
-rw-r--r--source/blender/editors/screen/screen_edit.c4
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 82552c35786..131b509df5a 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1447,6 +1447,10 @@ bool ED_screen_delete_scene(bContext *C, Scene *scene)
Main *bmain = CTX_data_main(C);
Scene *newscene;
+ // kill running jobs
+ wmWindowManager *wm = CTX_wm_manager(C);
+ WM_jobs_kill_type(wm, scene, WM_JOB_TYPE_ANY);
+
if (scene->id.prev)
newscene = 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);
}
}