From fd3532f1a9598292711412f63ee818329819e478 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Oct 2010 16:05:31 +0000 Subject: bugfix [#24341] Problems running blender headless bg mode didnt have the screen context callback set. Though this sounds logical, bg mode defines a screen it should be set. --- source/blender/editors/screen/screen_edit.c | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 9d178a57465..2cd6dafa167 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1029,23 +1029,26 @@ void ED_screen_refresh(wmWindowManager *wm, wmWindow *win) ScrArea *sa; rcti winrct= {0, win->sizex-1, 0, win->sizey-1}; - screen_test_scale(win->screen, win->sizex, win->sizey); - - if(win->screen->mainwin==0) - win->screen->mainwin= wm_subwindow_open(win, &winrct); - else - wm_subwindow_position(win, win->screen->mainwin, &winrct); + /* exception for bg mode, we only need the screen context */ + if (!G.background) { + screen_test_scale(win->screen, win->sizex, win->sizey); + + if(win->screen->mainwin==0) + win->screen->mainwin= wm_subwindow_open(win, &winrct); + else + wm_subwindow_position(win, win->screen->mainwin, &winrct); + + for(sa= win->screen->areabase.first; sa; sa= sa->next) { + /* set spacetype and region callbacks, calls init() */ + /* sets subwindows for regions, adds handlers */ + ED_area_initialize(wm, win, sa); + } - for(sa= win->screen->areabase.first; sa; sa= sa->next) { - /* set spacetype and region callbacks, calls init() */ - /* sets subwindows for regions, adds handlers */ - ED_area_initialize(wm, win, sa); + /* wake up animtimer */ + if(win->screen->animtimer) + WM_event_timer_sleep(wm, win, win->screen->animtimer, 0); } - /* wake up animtimer */ - if(win->screen->animtimer) - WM_event_timer_sleep(wm, win, win->screen->animtimer, 0); - if(G.f & G_DEBUG) printf("set screen\n"); win->screen->do_refresh= 0; -- cgit v1.2.3