[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