[Bf-blender-cvs] [7cb2f43b075] workspaces: Merge branch 'blender2.8' into workspaces
Julian Eisel
noreply at git.blender.org
Thu Apr 27 00:18:10 CEST 2017
Commit: 7cb2f43b07500f64c791ea822fada87f57e1dae1
Author: Julian Eisel
Date: Wed Apr 26 21:54:28 2017 +0200
Branches: workspaces
https://developer.blender.org/rB7cb2f43b07500f64c791ea822fada87f57e1dae1
Merge branch 'blender2.8' into workspaces
Conflicts:
source/blender/blenkernel/BKE_layer.h
source/blender/blenkernel/intern/layer.c
source/blender/blenkernel/intern/library_query.c
source/blender/editors/interface/interface_eyedropper.c
source/blender/editors/space_image/space_image.c
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/library_query.c
index 184191f9e40,24ddf67a815..a08bfbd5d26
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@@ -907,49 -991,22 +986,56 @@@ void BKE_library_foreach_ID_link(Main *
}
break;
}
+
+ case ID_WM:
+ {
+ wmWindowManager *wm = (wmWindowManager *)id;
+
+ for (wmWindow *win = wm->windows.first; win; win = win->next) {
+ ID *workspace = BKE_workspace_id_get(BKE_workspace_active_get(win->workspace_hook));
+
+ CALLBACK_INVOKE(win->scene, IDWALK_CB_USER_ONE);
+
+ CALLBACK_INVOKE_ID(workspace, IDWALK_CB_NOP);
+ /* allow callback to set a different workspace */
+ BKE_workspace_active_set(win->workspace_hook, (WorkSpace *)workspace);
+ }
+ break;
+ }
+
+ case ID_WS:
+ {
+ WorkSpace *workspace = (WorkSpace *)id;
+ ListBase *layouts = BKE_workspace_layouts_get(workspace);
+
+ BKE_workspace_layout_iter_begin(layout, layouts->first);
+ {
+ bScreen *screen = BKE_workspace_layout_screen_get(layout);
+
+ CALLBACK_INVOKE(screen, IDWALK_CB_NOP);
+ /* allow callback to set a different screen */
+ BKE_workspace_layout_screen_set(layout, screen);
+ }
+ BKE_workspace_layout_iter_end;
+
+ break;
+ }
+ case ID_GD:
+ {
+ bGPdata *gpencil = (bGPdata *) id;
+
+ for (bGPDlayer *gp_layer = gpencil->layers.first; gp_layer; gp_layer = gp_layer->next) {
+ CALLBACK_INVOKE(gp_layer->parent, IDWALK_CB_NOP);
+ }
+ break;
+ }
/* Nothing needed for those... */
+ case ID_SCR:
case ID_IM:
case ID_VF:
case ID_TXT:
case ID_SO:
- case ID_AR:
- case ID_GD:
- case ID_WM:
case ID_PAL:
case ID_PC:
case ID_CF:
@@@ -1061,8 -1133,7 +1162,8 @@@ bool BKE_library_id_can_use_idtype(ID *
case ID_MSK:
return ELEM(id_type_used, ID_MC); /* WARNING! mask->parent.id, not typed. */
case ID_LS:
- return (ELEM(id_type_used, ID_TE, ID_OB) || BKE_library_idtype_can_use_idtype(ID_NT, id_type_used));
+ return (ELEM(id_type_used, ID_TE, ID_OB));
+ case ID_WS:
case ID_IM:
case ID_VF:
case ID_TXT:
diff --cc source/blender/blenloader/intern/readfile.c
index d31a6d84b88,e5d5e20c8f2..5c19011a914
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -6549,12 -6453,16 +6587,12 @@@ static void lib_link_screen(FileData *f
{
for (bScreen *sc = main->screen.first; sc; sc = sc->id.next) {
if (sc->id.tag & LIB_TAG_NEED_LINK) {
- IDP_LibLinkProperty(sc->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
+ IDP_LibLinkProperty(sc->id.properties, fd);
id_us_ensure_real(&sc->id);
+ /* deprecated, but needed for versioning (will be NULL'ed then) */
sc->scene = newlibadr(fd, sc->id.lib, sc->scene);
- /* this should not happen, but apparently it does somehow. Until we figure out the cause,
- * just assign first available scene */
- if (!sc->scene)
- sc->scene = main->scene.first;
-
sc->animtimer = NULL; /* saved in rare cases */
sc->scrubbing = false;
diff --cc source/blender/editors/interface/interface_eyedropper.c
index 70504089f99,ea13e67e600..dc1d1403bd4
--- a/source/blender/editors/interface/interface_eyedropper.c
+++ b/source/blender/editors/interface/interface_eyedropper.c
@@@ -262,9 -262,12 +262,11 @@@ static void eyedropper_exit(bContext *C
*/
static void eyedropper_color_sample_fl(bContext *C, Eyedropper *UNUSED(eye), int mx, int my, float r_col[3])
{
-
/* we could use some clever */
- wmWindow *win = CTX_wm_window(C);
- ScrArea *sa = BKE_screen_find_area_xy(win->screen, SPACE_TYPE_ANY, mx, my);
+ bScreen *screen = CTX_wm_screen(C);
+ ScrArea *sa = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, mx, my);
+ const char *display_device = CTX_data_scene(C)->display_settings.display_device;
+ struct ColorManagedDisplay *display = IMB_colormanagement_display_get_named(display_device);
if (sa) {
if (sa->spacetype == SPACE_IMAGE) {
diff --cc source/blender/editors/interface/interface_templates.c
index 189b26882cf,6efaeb88205..e5745fee1aa
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@@ -511,9 -464,14 +511,14 @@@ static void template_ID
//text_idbutton(id, name);
name[0] = '\0';
- but = uiDefButR(block, UI_BTYPE_TEXT, 0, name, 0, 0, UI_UNIT_X * 6, UI_UNIT_Y,
- &idptr, "name", -1, 0, 0, -1, -1, RNA_struct_ui_description(type));
+ but = uiDefButR_prop(block, UI_BTYPE_TEXT, 0, name, 0, 0, UI_UNIT_X * 6, UI_UNIT_Y,
+ &idptr, prop, -1, 0, 0, -1, -1, RNA_struct_ui_description(type));
UI_but_funcN_set(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_RENAME));
+
+ but->search_func = id_search_cb;
+ but->search_arg = template;
+ ui_but_search_refresh(but, true);
+
if (user_alert) UI_but_flag_enable(but, UI_BUT_REDALERT);
if (id->lib) {
diff --cc source/blender/editors/space_image/space_image.c
index 33952fc34ac,754dcc503c4..1666b9e510a
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@@ -537,8 -539,6 +537,7 @@@ static void image_listener(bScreen *UNU
case ND_TRANSFORM:
case ND_MODIFIER:
{
+ SceneLayer *sl = BKE_scene_layer_context_active(scene);
-
Object *ob = OBACT_NEW;
if (ob && (ob == wmn->reference) && (ob->mode & OB_MODE_EDIT)) {
if (sima->lock && (sima->flag & SI_DRAWSHADOW)) {
diff --cc source/blender/editors/space_view3d/view3d_draw_legacy.c
index 0ce45633dc1,60b9cbb3b1c..06f8d40aef8
--- a/source/blender/editors/space_view3d/view3d_draw_legacy.c
+++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c
@@@ -2189,10 -2140,10 +2139,10 @@@ static bool view3d_main_region_do_rende
{
RenderEngineType *type = RE_engines_find(scene->r.engine);
- return (type && type->view_update && type->view_draw);
+ return (type && type->view_update && type->render_to_view);
}
-bool ED_view3d_calc_render_border(Scene *scene, View3D *v3d, ARegion *ar, rcti *rect)
+bool ED_view3d_calc_render_border(const Scene *scene, View3D *v3d, ARegion *ar, rcti *rect)
{
RegionView3D *rv3d = ar->regiondata;
bool use_border;
diff --cc source/blender/windowmanager/intern/wm_window.c
index b24247fd484,3ff323862b3..3353798f0e2
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@@ -680,12 -666,10 +680,12 @@@ wmWindow *WM_window_open(bContext *C, c
* \param type: WM_WINDOW_RENDER, WM_WINDOW_USERPREFS...
* \return the window or NULL.
*/
- wmWindow *WM_window_open_temp(bContext *C, const rcti *rect_init, int type)
+ wmWindow *WM_window_open_temp(bContext *C, int x, int y, int sizex, int sizey, int type)
{
+ Main *bmain = CTX_data_main(C);
wmWindow *win_prev = CTX_wm_window(C);
wmWindow *win;
+ bScreen *screen;
ScrArea *sa;
Scene *scene = CTX_data_scene(C);
const char *title;
More information about the Bf-blender-cvs
mailing list