[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