Commit: 3fb11061bad7c76ea53925ed599ee155b0d4222f
Author: Julian Eisel
Date:   Fri Nov 18 13:37:04 2016 +0100
Branches: master
https://developer.blender.org/rB3fb11061bad7c76ea53925ed599ee155b0d4222f

Fix T50063: Editing driver's expression eliminates "Zero" number

Disables trimming of trailing zeros in case button contains an expression.

===================================================================

M       source/blender/editors/interface/interface_anim.c
M       source/blender/editors/interface/interface_handlers.c

===================================================================

diff --git a/source/blender/editors/interface/interface_anim.c 
b/source/blender/editors/interface/interface_anim.c
index 991cd54..5da2943 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -99,6 +99,10 @@ void ui_but_anim_flag(uiBut *but, float cfra)
        }
 }
 
+/**
+ * \a str can be NULL to only perform check if \a but has an expression at all.
+ * \return if button has an expression.
+ */
 bool ui_but_anim_expression_get(uiBut *but, char *str, size_t maxlen)
 {
        FCurve *fcu;
@@ -111,7 +115,9 @@ bool ui_but_anim_expression_get(uiBut *but, char *str, 
size_t maxlen)
                driver = fcu->driver;
 
                if (driver && driver->type == DRIVER_TYPE_PYTHON) {
-                       BLI_strncpy(str, driver->expression, maxlen);
+                       if (str) {
+                               BLI_strncpy(str, driver->expression, maxlen);
+                       }
                        return true;
                }
        }
diff --git a/source/blender/editors/interface/interface_handlers.c 
b/source/blender/editors/interface/interface_handlers.c
index f3eeadb..fc511d6 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -3067,7 +3067,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, 
uiHandleButtonData *data)
                data->str = ui_but_string_get_dynamic(but, &data->maxlen);
        }
 
-       if (ui_but_is_float(but) && !ui_but_is_unit(but)) {
+       if (ui_but_is_float(but) && !ui_but_is_unit(but) && 
!ui_but_anim_expression_get(but, NULL, 0)) {
                BLI_str_rstrip_float_zero(data->str, '\0');
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to