Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-02-27 12:00:35 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-02-27 12:01:14 +0400
commit64eea27533b84a271ad66ea27b937c4b8096f14e (patch)
tree82ef2e005d9f4e40af7925b81db8a98f92f3d817 /source/blender/editors/interface/interface.c
parentb9f14ea56b5e2b7c42b63bc71986bb55f1e7b910 (diff)
Fix T38602: Aligned layout breaks if panel too wide
Diffstat (limited to 'source/blender/editors/interface/interface.c')
-rw-r--r--source/blender/editors/interface/interface.c14
1 files changed, 11 insertions, 3 deletions
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);
}