Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-11-07 15:05:38 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-07 16:04:47 +0300
commit48488b7106a32bdc4bcf589dd3043d7101fe7054 (patch)
tree979d804c3839a047323b7836151fe8bc33e7689c /source/blender/windowmanager/intern/wm_event_system.c
parent1cadd811cee92d26ef70fcf3ccf98ac54c5479ca (diff)
Skip dependency graph update when interface is locked
This is a variation of legacy dependency graph update check based on G.is_rendering. Now it is ensured, that locked interface does not tempter around with the dependency graph.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_event_system.c')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 198eae05f92..cff221b3b64 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -299,9 +299,17 @@ static void wm_notifier_clear(wmNotifier *note)
void wm_event_do_depsgraph(bContext *C)
{
wmWindowManager *wm = CTX_wm_manager(C);
- uint64_t win_combine_v3d_datamask = 0;
+
+ /* The whole idea of locked interface is to prevent viewport and whatever
+ * thread to modify the same data. Because of this, we can not perform
+ * dependency graph update.
+ */
+ if (wm->is_interface_locked) {
+ return;
+ }
/* combine datamasks so 1 win doesn't disable UV's in another [#26448] */
+ uint64_t win_combine_v3d_datamask = 0;
for (wmWindow *win = wm->windows.first; win; win = win->next) {
const Scene *scene = WM_window_get_active_scene(win);
const bScreen *screen = WM_window_get_active_screen(win);