[Bf-blender-cvs] [64eea27] master: Fix T38602: Aligned layout breaks if panel too wide
Campbell Barton
noreply at git.blender.org
Thu Feb 27 09:01:31 CET 2014
Commit: 64eea27533b84a271ad66ea27b937c4b8096f14e
Author: Campbell Barton
Date: Thu Feb 27 19:00:35 2014 +1100
https://developer.blender.org/rB64eea27533b84a271ad66ea27b937c4b8096f14e
Fix T38602: Aligned layout breaks if panel too wide
===================================================================
M source/blender/editors/interface/interface.c
===================================================================
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 99d97e9..8751741 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -2671,9 +2671,17 @@ void uiBlockBeginAlign(uiBlock *block)
static bool buts_are_horiz(uiBut *but1, uiBut *but2)
{
float dx, dy;
-
- dx = fabs(but1->rect.xmax - but2->rect.xmin);
- dy = fabs(but1->rect.ymin - but2->rect.ymax);
+
+ /* simple case which can fail if buttons shift apart
+ * with proportional layouts, see: [#38602] */
+ if ((but1->rect.ymin == but2->rect.ymin) &&
+ (but1->rect.xmin != but2->rect.xmin))
+ {
+ return true;
+ }
+
+ dx = fabsf(but1->rect.xmax - but2->rect.xmin);
+ dy = fabsf(but1->rect.ymin - but2->rect.ymax);
return (dx <= dy);
}
More information about the Bf-blender-cvs
mailing list