From 64eea27533b84a271ad66ea27b937c4b8096f14e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 27 Feb 2014 19:00:35 +1100 Subject: Fix T38602: Aligned layout breaks if panel too wide --- source/blender/editors/interface/interface.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 99d97e9d500..8751741a58a 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); } -- cgit v1.2.3