[Bf-blender-cvs] [7c4a696] workspaces: Fix foreach_ID_link iterator, undo version bump, cleanup
Julian Eisel
noreply at git.blender.org
Thu Jan 5 22:26:23 CET 2017
Commit: 7c4a6963e2fac0ace8b11f47a28794e453651c68
Author: Julian Eisel
Date: Thu Jan 5 22:24:17 2017 +0100
Branches: workspaces
https://developer.blender.org/rB7c4a6963e2fac0ace8b11f47a28794e453651c68
Fix foreach_ID_link iterator, undo version bump, cleanup
===================================================================
M source/blender/blenkernel/BKE_blender_version.h
M source/blender/blenkernel/intern/library_query.c
M source/blender/blenloader/intern/versioning_270.c
M source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h
index 207631d..4f4787f 100644
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@ -28,7 +28,7 @@
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 278
-#define BLENDER_SUBVERSION 5
+#define BLENDER_SUBVERSION 4
/* Several breakages with 270, e.g. constraint deg vs rad */
#define BLENDER_MINVERSION 270
#define BLENDER_MINSUBVERSION 6
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index abb3079..4f385b3 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -871,7 +871,13 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
wmWindowManager *wm = (wmWindowManager *)id;
for (wmWindow *win = wm->windows.first; win; win = win->next) {
+ ID *workspace = BKE_workspace_id_get(win->workspace);
+
CALLBACK_INVOKE(win->scene, IDWALK_USER_ONE);
+
+ CALLBACK_INVOKE_ID(workspace, IDWALK_NOP);
+ /* allow callback to set a different workspace */
+ win->workspace = (WorkSpace *)workspace;
}
break;
}
@@ -886,6 +892,8 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
bScreen *screen = BKE_workspace_layout_screen_get(layout);
CALLBACK_INVOKE(screen, IDWALK_NOP);
+ /* allow callback to set a different screen */
+ BKE_workspace_layout_screen_set(layout, screen);
}
BKE_workspace_layout_iter_end;
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index 0f87f21..344f4a7 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -1564,7 +1564,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
}
}
- if (!MAIN_VERSION_ATLEAST(main, 278, 5)) {
+ {
/* New workspace design */
if (!DNA_struct_find(fd->filesdna, "WorkSpace")) {
do_version_workspaces_before_lib_link(main);
@@ -1574,7 +1574,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
void blo_do_versions_after_linking_270(FileData *fd, Main *main)
{
- if (!MAIN_VERSION_ATLEAST(main, 278, 5)) {
+ {
if (!DNA_struct_find(fd->filesdna, "WorkSpace")) {
do_version_workspaces_after_lib_link(main);
}
diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h
index caa675f..0fb6a6d 100644
--- a/source/blender/makesdna/DNA_windowmanager_types.h
+++ b/source/blender/makesdna/DNA_windowmanager_types.h
@@ -180,9 +180,10 @@ typedef struct wmWindow {
struct Scene *scene; /* The scene displayed in this window. */
struct Scene *new_scene; /* temporary when switching */
- struct bScreen *screen DNA_DEPRECATED;
- struct WorkSpace *workspace; /* active workspace */
+ struct WorkSpace *workspace; /* active workspace */
struct WorkSpace *new_workspace; /* temporary when switching */
+
+ struct bScreen *screen DNA_DEPRECATED;
char screenname[64]; /* MAX_ID_NAME for matching window with active screen after file read */
short posx, posy, sizex, sizey; /* window coords */
More information about the Bf-blender-cvs
mailing list