diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-27 20:05:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-27 20:05:31 +0400 |
commit | fd3532f1a9598292711412f63ee818329819e478 (patch) | |
tree | 9293fd00df12a34f028845a111887595939cd20a /source/blender/editors/screen | |
parent | 7a569402078e4d4cb5b905645e8466e653bf6e1a (diff) |
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.
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 31 |
1 files changed, 17 insertions, 14 deletions
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; |