diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-06-25 14:10:30 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-06-25 14:19:54 +0300 |
commit | 9c96585f3cc09b3e4adc40b53982792974d1d8eb (patch) | |
tree | c7616f827c963098574e72fd5e4f8467d04b5104 /source/blender/blenkernel/intern/blender_undo.c | |
parent | 0a99072f0d88f6fa809680dfcabe7aba5d476e0a (diff) |
Cleanup: remove bad-level call
Diffstat (limited to 'source/blender/blenkernel/intern/blender_undo.c')
-rw-r--r-- | source/blender/blenkernel/intern/blender_undo.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/blender_undo.c b/source/blender/blenkernel/intern/blender_undo.c index ca0a1b91cea..d64bf7ecf43 100644 --- a/source/blender/blenkernel/intern/blender_undo.c +++ b/source/blender/blenkernel/intern/blender_undo.c @@ -66,9 +66,6 @@ #include "BLO_readfile.h" #include "BLO_writefile.h" -#include "WM_api.h" // XXXXX BAD, very BAD dependency (bad level call) - remove asap, elubie - - /* -------------------------------------------------------------------- */ /** \name Global Undo @@ -87,6 +84,15 @@ typedef struct UndoElem { static ListBase undobase = {NULL, NULL}; static UndoElem *curundo = NULL; +/** + * Avoid bad-level call to #WM_jobs_kill_all_except() + */ +static void (*undo_wm_job_kill_callback)(struct bContext *C) = NULL; + +void BKE_undo_callback_wm_kill_jobs_set(void (*callback)(struct bContext *C)) +{ + undo_wm_job_kill_callback = callback; +} static int read_undosave(bContext *C, UndoElem *uel) { @@ -94,7 +100,7 @@ static int read_undosave(bContext *C, UndoElem *uel) int success = 0, fileflags; /* This is needed so undoing/redoing doesn't crash with threaded previews going */ - WM_jobs_kill_all_except(CTX_wm_manager(C), CTX_wm_screen(C)); + undo_wm_job_kill_callback(C); BLI_strncpy(mainstr, G.main->name, sizeof(mainstr)); /* temporal store */ |