diff options
author | Alexandr Kuznetsov <ak3636@nyu.edu> | 2014-11-30 20:52:44 +0300 |
---|---|---|
committer | Alexandr Kuznetsov <ak3636@nyu.edu> | 2014-11-30 21:33:51 +0300 |
commit | 29c2b70a2c30a0f06d2eb78a742cb9cf18f481df (patch) | |
tree | 31c3b004725626398a71217fbb2e1afbf271ae49 /source/blender/windowmanager/intern/wm_jobs.c | |
parent | b7d053beaa70f0331629723f2b575ecf7f842493 (diff) |
Fixed T35128. Progress bar sync on Windows.
Apply for all windows instead of active, otherwise progress doesn't update.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_jobs.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_jobs.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c index 24d8ed0f676..6bc858e861a 100644 --- a/source/blender/windowmanager/intern/wm_jobs.c +++ b/source/blender/windowmanager/intern/wm_jobs.c @@ -628,17 +628,22 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt) } } - /* on file load 'winactive' can be NULL, possibly it should not happen but for now do a NULL check - campbell */ - if (wm->winactive) { - /* if there are running jobs, set the global progress indicator */ - if (jobs_progress > 0) { - float progress = total_progress / (float)jobs_progress; - WM_progress_set(wm->winactive, progress); - } - else { - WM_progress_clear(wm->winactive); - } + + /* if there are running jobs, set the global progress indicator */ + if (jobs_progress > 0) { + wmWindow *win; + float progress = total_progress / (float)jobs_progress; + + for (win = wm->windows.first; win; win = win->next) + WM_progress_set(win, progress); } + else { + wmWindow *win; + + for (win = wm->windows.first; win; win = win->next) + WM_progress_clear(win); + } + } bool WM_jobs_has_running(wmWindowManager *wm) |