diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-06-10 13:45:51 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-06-10 13:45:51 +0400 |
commit | 84429e5d39fc6f0923794484f17d886aa212be69 (patch) | |
tree | 10aca14be684f86cde6ab199d0717b4131c8d048 /source | |
parent | cae0d9df523f9bb0a19a9487541be3d05197b940 (diff) |
Fix #35683: Addon working fine in console. But crashed when click GUI button.
Crash happened in ED_view3d_calc_zfac and happend in cases operator was invoked
from a region different from RGN_TYPE_WINDOW.
For a transformation zfac is only used in convertViewVec in cases region is
RGN_TYPE_WINDOW, so solved by just adding extra check in calculateCenter
for this particular case.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index a2957263ba9..6b0139aa8d9 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1711,7 +1711,19 @@ void calculateCenter(TransInfo *t) else { copy_v3_v3(vec, t->center); } - t->zfac = ED_view3d_calc_zfac(t->ar->regiondata, vec, NULL); + + /* zfac is only used convertViewVec only in cases operator was invoked in RGN_TYPE_WINDOW + * and never used in other cases. + * + * We need special case here as well, since ED_view3d_calc_zfac will crahs when called + * for a region different from RGN_TYPE_WINDOW. + */ + if (t->ar->regiontype == RGN_TYPE_WINDOW) { + t->zfac = ED_view3d_calc_zfac(t->ar->regiondata, vec, NULL); + } + else { + t->zfac = 0.0f; + } } } |