diff options
Diffstat (limited to 'source/blender/windowmanager/intern/wm.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 5b7f892592b..1d173005d85 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -209,8 +209,10 @@ void wm_check(bContext *C) if(wm->windows.first==NULL) return; /* case: fileread */ - if((wm->initialized & WM_INIT_WINDOW) == 0) + if((wm->initialized & WM_INIT_WINDOW) == 0) { WM_keymap_init(C); + WM_autosave_init(C); + } /* case: no open windows at all, for old file reads */ wm_window_add_ghostwindows(wm); @@ -269,12 +271,15 @@ void wm_close_and_free(bContext *C, wmWindowManager *wm) wmWindow *win; wmOperator *op; wmKeyConfig *keyconf; - + + if(wm->autosavetimer) + wm_autosave_timer_ended(wm); + while((win= wm->windows.first)) { BLI_remlink(&wm->windows, win); win->screen= NULL; /* prevent draw clear to use screen */ wm_draw_window_clear(win); - wm_window_free(C, win); + wm_window_free(C, wm, win); } while((op= wm->operators.first)) { @@ -290,6 +295,7 @@ void wm_close_and_free(bContext *C, wmWindowManager *wm) BLI_freelistN(&wm->queue); BLI_freelistN(&wm->paintcursors); + BKE_reports_clear(&wm->reports); if(C && CTX_wm_manager(C)==wm) CTX_wm_manager_set(C, NULL); } |