From 1e0d2d4700bb1a314e6771aa6404433b8c5a5d68 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Oct 2010 15:44:58 +0000 Subject: patch [#24125] Fix for Slider Widget (UI) from Alexander Kuznetsov (alexk) --- source/blender/editors/interface/interface_widgets.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'source') diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index b892ce1ca6d..134ab70e4ca 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -284,8 +284,10 @@ static void round_box__edges(uiWidgetBase *wt, int roundboxalign, rcti *rect, fl float facxi= (maxxi!=minxi) ? 1.0f/(maxxi-minxi) : 0.0f; /* for uv, can divide by zero */ float facyi= (maxyi!=minyi) ? 1.0f/(maxyi-minyi) : 0.0f; int a, tot= 0, minsize; + const int hnum= ((roundboxalign & (1|2))==(1|2) || (roundboxalign & (4|8))==(4|8)) ? 1 : 2; + const int vnum= ((roundboxalign & (1|8))==(1|8) || (roundboxalign & (2|4))==(2|4)) ? 1 : 2; - minsize= MIN2(rect->xmax-rect->xmin, rect->ymax-rect->ymin); + minsize= MIN2((rect->xmax-rect->xmin)*hnum, (rect->ymax-rect->ymin)*vnum); if(2.0f*rad > minsize) rad= 0.5f*minsize; @@ -2219,7 +2221,7 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s uiWidgetBase wtb, wtb1; rcti rect1; double value; - float offs, fac; + float offs, toffs, fac; char outline[3]; widget_init(&wtb); @@ -2229,6 +2231,7 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s /* fully rounded */ offs= 0.5f*(rect->ymax - rect->ymin); + toffs = offs*0.75f; round_box_edges(&wtb, roundboxalign, rect, offs); wtb.outline= 0; @@ -2274,8 +2277,8 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s widgetbase_draw(&wtb, wcol); /* text space */ - rect->xmin += offs*0.75f; - rect->xmax -= offs*0.75f; + rect->xmin += toffs; + rect->xmax -= toffs; } /* I think 3 is sufficient border to indicate keyed status */ -- cgit v1.2.3