[Bf-blender-cvs] [125e74d02e9] workspaces: Alternate workaround for accessing window at startup
Campbell Barton
noreply at git.blender.org
Tue Apr 4 06:09:50 CEST 2017
Commit: 125e74d02e9fa3872ee7d5e506c98ee384b143b3
Author: Campbell Barton
Date: Tue Apr 4 14:09:48 2017 +1000
Branches: workspaces
https://developer.blender.org/rB125e74d02e9fa3872ee7d5e506c98ee384b143b3
Alternate workaround for accessing window at startup
===================================================================
M source/blender/blenkernel/intern/blendfile.c
M source/blender/blenkernel/intern/layer.c
M source/blender/editors/util/ed_util.c
===================================================================
diff --git a/source/blender/blenkernel/intern/blendfile.c b/source/blender/blenkernel/intern/blendfile.c
index c769365dffc..516d26cc5d7 100644
--- a/source/blender/blenkernel/intern/blendfile.c
+++ b/source/blender/blenkernel/intern/blendfile.c
@@ -93,8 +93,9 @@ static void clean_paths(Main *main)
static bool wm_scene_is_visible(wmWindowManager *wm, Scene *scene)
{
- for (wmWindow *win = wm->windows.first; win; win = win->next) {
- if (win->scene == scene) {
+ wmWindow *win;
+ for (win = wm->windows.first; win; win = win->next) {
+ if (win->screen->scene == scene) {
return true;
}
}
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index a49f62ff97a..bc26c166426 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -86,7 +86,9 @@ SceneLayer *BKE_scene_layer_context_active_ex(const Main *bmain, const Scene *UN
* some bigger changes since it's often not available where we call this.
* Just working around this by getting active window from WM for now */
for (wmWindowManager *wm = bmain->wm.first; wm; wm = wm->id.next) {
- const WorkSpace *workspace = BKE_workspace_active_get(wm->winactive->workspace_hook);
+ /* Called on startup, so 'winactive' may not be set, in that case fall back to first window. */
+ wmWindow *win = wm->winactive ? wm->winactive : wm->windows.first;
+ const WorkSpace *workspace = BKE_workspace_active_get(win->workspace_hook);
return BKE_workspace_render_layer_get(workspace);
}
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index 2fb1fd569ce..96864c88d9d 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -88,12 +88,7 @@ void ED_editors_init(bContext *C)
wmWindowManager *wm = CTX_wm_manager(C);
Main *bmain = CTX_data_main(C);
Scene *sce = CTX_data_scene(C);
-
- /* workaround! we need winactive set here, not sure of better way */
- wm->winactive = wm->windows.first;
SceneLayer *sl = CTX_data_scene_layer(C);
- wm->winactive = NULL;
-
Object *ob, *obact = (sl && sl->basact) ? sl->basact->object : NULL;
ID *data;
More information about the Bf-blender-cvs
mailing list