[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41024] trunk/blender/source/blender/ editors/interface: fix UI jump in normal buttons for buttons which didnt start out normalized .
Campbell Barton
ideasman42 at gmail.com
Sat Oct 15 11:43:42 CEST 2011
Revision: 41024
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41024
Author: campbellbarton
Date: 2011-10-15 09:43:42 +0000 (Sat, 15 Oct 2011)
Log Message:
-----------
fix UI jump in normal buttons for buttons which didnt start out normalized.
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface.c
trunk/blender/source/blender/editors/interface/interface_handlers.c
trunk/blender/source/blender/editors/interface/interface_intern.h
Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c 2011-10-15 07:19:34 UTC (rev 41023)
+++ trunk/blender/source/blender/editors/interface/interface.c 2011-10-15 09:43:42 UTC (rev 41024)
@@ -1211,7 +1211,7 @@
* an edit override pointer while dragging for example */
/* for buttons pointing to color for example */
-void ui_get_but_vectorf(uiBut *but, float *vec)
+void ui_get_but_vectorf(uiBut *but, float vec[3])
{
PropertyRNA *prop;
int a, tot;
@@ -1249,16 +1249,20 @@
vec[0]= vec[1]= vec[2]= 0.0f;
}
}
+
+ if (but->type == BUT_NORMAL) {
+ normalize_v3(vec);
+ }
}
/* for buttons pointing to color for example */
-void ui_set_but_vectorf(uiBut *but, float *vec)
+void ui_set_but_vectorf(uiBut *but, const float vec[3])
{
PropertyRNA *prop;
int a, tot;
if(but->editvec) {
- VECCOPY(but->editvec, vec);
+ copy_v3_v3(but->editvec, vec);
}
if(but->rnaprop) {
@@ -1280,7 +1284,7 @@
}
else if(but->pointype == FLO) {
float *fp= (float *)but->poin;
- VECCOPY(fp, vec);
+ copy_v3_v3(fp, vec);
}
}
Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c 2011-10-15 07:19:34 UTC (rev 41023)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c 2011-10-15 09:43:42 UTC (rev 41024)
@@ -1966,8 +1966,6 @@
static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data)
{
- float softrange, softmin, softmax;
-
if(but->type == BUT_CURVE) {
but->editcumap= (CurveMapping*)but->poin;
}
@@ -1977,10 +1975,12 @@
}
else if(ELEM3(but->type, BUT_NORMAL, HSVCUBE, HSVCIRCLE)) {
ui_get_but_vectorf(but, data->origvec);
- VECCOPY(data->vec, data->origvec);
+ copy_v3_v3(data->vec, data->origvec);
but->editvec= data->vec;
}
else {
+ float softrange, softmin, softmax;
+
data->startvalue= ui_get_but_val(but);
data->origvalue= data->startvalue;
data->value= data->origvalue;
@@ -3004,6 +3004,9 @@
/* button is presumed square */
/* if mouse moves outside of sphere, it does negative normal */
+ /* note that both data->vec and data->origvec should be normalized
+ * else we'll get a hamrless but annoying jump when first clicking */
+
fp= data->origvec;
rad= (but->x2 - but->x1);
radsq= rad*rad;
Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h 2011-10-15 07:19:34 UTC (rev 41023)
+++ trunk/blender/source/blender/editors/interface/interface_intern.h 2011-10-15 09:43:42 UTC (rev 41024)
@@ -350,8 +350,8 @@
extern double ui_get_but_val(uiBut *but);
extern void ui_set_but_val(uiBut *but, double value);
extern void ui_set_but_hsv(uiBut *but);
-extern void ui_get_but_vectorf(uiBut *but, float *vec);
-extern void ui_set_but_vectorf(uiBut *but, float *vec);
+extern void ui_get_but_vectorf(uiBut *but, float vec[3]);
+extern void ui_set_but_vectorf(uiBut *but, const float vec[3]);
extern void ui_hsvcircle_vals_from_pos(float *valrad, float *valdist, rcti *rect, float mx, float my);
More information about the Bf-blender-cvs
mailing list