numbutton python expression evaluation used driver dictionary, when EnableScriptlinks...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 4 Jun 2008 22:32:15 +0000 (22:32 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 4 Jun 2008 22:32:15 +0000 (22:32 +0000)
button input didnt
work. narrow down this test to the part of the pydriver module init that uses a blender textblock as a module. This should
should reload the pydriver dict whenever the "EnableScriptlinks" state changes. but for now working numbuttons is priority.

source/blender/python/BPY_interface.c

index c63fa28c46e396507063756d880346baeb22f7d0..7c23c86d9ba19ea8d9c22f377169994cd2ddf6fe 100644 (file)
@@ -1222,7 +1222,7 @@ static int bpy_pydriver_create_dict(void)
 {
        PyObject *d, *mod;
 
-       if (bpy_pydriver_Dict || (G.f&G_DOSCRIPTLINKS)==0) return -1;
+       if (bpy_pydriver_Dict) return -1;
 
        d = PyDict_New();
        if (!d) return -1;
@@ -1259,15 +1259,16 @@ static int bpy_pydriver_create_dict(void)
 
        /* If there's a Blender text called pydrivers.py, import it.
         * Users can add their own functions to this module. */
-       mod = importText("pydrivers"); /* can also use PyImport_Import() */
-       if (mod) {
-               PyDict_SetItemString(d, "pydrivers", mod);
-               PyDict_SetItemString(d, "p", mod);
-               Py_DECREF(mod);
+       if (G.f&G_DOSCRIPTLINKS) {
+               mod = importText("pydrivers"); /* can also use PyImport_Import() */
+               if (mod) {
+                       PyDict_SetItemString(d, "pydrivers", mod);
+                       PyDict_SetItemString(d, "p", mod);
+                       Py_DECREF(mod);
+               } else {
+                       PyErr_Clear();
+               }
        }
-       else
-               PyErr_Clear();
-
        /* short aliases for some Get() functions: */
 
        /* ob(obname) == Blender.Object.Get(obname) */