[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46188] trunk/blender/source/blender/ blenkernel/intern/context.c: Python/context: tweak code further so that when you set screen/area/region
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed May 2 15:48:14 CEST 2012
Revision: 46188
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46188
Author: blendix
Date: 2012-05-02 13:48:14 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Python/context: tweak code further so that when you set screen/area/region
from python, it actually gets data context from there as well.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/context.c
Modified: trunk/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/context.c 2012-05-02 13:28:13 UTC (rev 46187)
+++ trunk/blender/source/blender/blenkernel/intern/context.c 2012-05-02 13:48:14 UTC (rev 46188)
@@ -248,6 +248,9 @@
static int ctx_data_get(bContext *C, const char *member, bContextDataResult *result)
{
+ bScreen *sc;
+ ScrArea *sa;
+ ARegion *ar;
int done= 0, recursion= C->data.recursion;
int ret= 0;
@@ -279,23 +282,23 @@
done= 1;
}
}
- if (done!=1 && recursion < 2 && C->wm.region) {
+ if (done!=1 && recursion < 2 && (ar=CTX_wm_region(C))) {
C->data.recursion= 2;
- if (C->wm.region->type && C->wm.region->type->context) {
- ret = C->wm.region->type->context(C, member, result);
+ if (ar->type && ar->type->context) {
+ ret = ar->type->context(C, member, result);
if (ret) done= -(-ret | -done);
}
}
- if (done!=1 && recursion < 3 && C->wm.area) {
+ if (done!=1 && recursion < 3 && (sa=CTX_wm_area(C))) {
C->data.recursion= 3;
- if (C->wm.area->type && C->wm.area->type->context) {
- ret = C->wm.area->type->context(C, member, result);
+ if (sa->type && sa->type->context) {
+ ret = sa->type->context(C, member, result);
if (ret) done= -(-ret | -done);
}
}
- if (done!=1 && recursion < 4 && C->wm.screen) {
- bContextDataCallback cb= C->wm.screen->context;
+ if (done!=1 && recursion < 4 && (sc=CTX_wm_screen(C))) {
+ bContextDataCallback cb= sc->context;
C->data.recursion= 4;
if (cb) {
ret = cb(C, member, result);
More information about the Bf-blender-cvs
mailing list