diff options
-rw-r--r-- | source/blender/editors/space_graph/space_graph.c | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_key.c | 24 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_interface.c | 16 |
3 files changed, 29 insertions, 15 deletions
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index b4b06844d13..342afab7534 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -151,8 +151,8 @@ static SpaceLink *graph_new(const bContext *C) ar->v2d.cur= ar->v2d.tot; - ar->v2d.min[0]= 0.01f; - ar->v2d.min[1]= 0.01f; + ar->v2d.min[0]= 0.001f; + ar->v2d.min[1]= 0.001f; ar->v2d.max[0]= MAXFRAMEF; ar->v2d.max[1]= 50000.0f; diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c index 433e5a7e4a3..ca36da5d03b 100644 --- a/source/blender/makesrna/intern/rna_key.c +++ b/source/blender/makesrna/intern/rna_key.c @@ -50,6 +50,17 @@ #include "WM_api.h" #include "WM_types.h" +static Key *rna_ShapeKey_find_key(ID *id) +{ + switch(GS(id->name)) { + case ID_CU: return ((Curve*)id)->key; + case ID_KE: return (Key*)id; + case ID_LT: return ((Lattice*)id)->key; + case ID_ME: return ((Mesh*)id)->key; + default: return NULL; + } +} + void rna_ShapeKey_name_set(PointerRNA *ptr, const char *value) { KeyBlock *kb= ptr->data; @@ -63,7 +74,7 @@ void rna_ShapeKey_name_set(PointerRNA *ptr, const char *value) /* make sure the name is truly unique */ if (ptr->id.data) { - Key *key= ptr->id.data; + Key *key= rna_ShapeKey_find_key(ptr->id.data); BLI_uniquename(&key->block, kb, "Key", '.', offsetof(KeyBlock, name), 32); } @@ -86,17 +97,6 @@ static void rna_ShapeKey_value_range(PointerRNA *ptr, float *min, float *max) *max= data->slidermax; } -static Key *rna_ShapeKey_find_key(ID *id) -{ - switch(GS(id->name)) { - case ID_CU: return ((Curve*)id)->key; - case ID_KE: return (Key*)id; - case ID_LT: return ((Lattice*)id)->key; - case ID_ME: return ((Mesh*)id)->key; - default: return NULL; - } -} - static PointerRNA rna_ShapeKey_relative_key_get(PointerRNA *ptr) { Key *key= rna_ShapeKey_find_key(ptr->id.data); diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 9e76c1d03aa..095bfab45c4 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -884,7 +884,7 @@ float BPY_pydriver_eval (ChannelDriver *driver) int BPY_button_eval(bContext *C, char *expr, double *value) { PyGILState_STATE gilstate; - PyObject *dict, *retval; + PyObject *dict, *mod, *retval; int error_ret = 0; if (!value || !expr || expr[0]=='\0') return -1; @@ -892,6 +892,20 @@ int BPY_button_eval(bContext *C, char *expr, double *value) bpy_context_set(C, &gilstate); dict= CreateGlobalDictionary(C); + + /* import some modules: builtins,math*/ + PyDict_SetItemString(dict, "__builtins__", PyEval_GetBuiltins()); + + mod = PyImport_ImportModule("math"); + if (mod) { + PyDict_Merge(dict, PyModule_GetDict(mod), 0); /* 0 - dont overwrite existing values */ + + /* Only keep for backwards compat! - just import all math into root, they are standard */ + PyDict_SetItemString(dict, "math", mod); + PyDict_SetItemString(dict, "m", mod); + Py_DECREF(mod); + } + retval = PyRun_String(expr, Py_eval_input, dict, dict); if (retval == NULL) { |