Revision: 23411 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23411 Author: blendix Date: 2009-09-21 23:26:04 +0200 (Mon, 21 Sep 2009)
Log Message: ----------- Fix #19427, problem in blenfont not computing the width of text correct, particularly text including spaces. This gave some problems with placing the cursor and selection, and clipping text inside buttons. Modified Paths: -------------- trunk/blender/source/blender/blenfont/intern/blf_font.c trunk/blender/source/blender/editors/interface/interface_widgets.c Modified: trunk/blender/source/blender/blenfont/intern/blf_font.c =================================================================== --- trunk/blender/source/blender/blenfont/intern/blf_font.c 2009-09-21 21:19:58 UTC (rev 23410) +++ trunk/blender/source/blender/blenfont/intern/blf_font.c 2009-09-21 21:26:04 UTC (rev 23411) @@ -353,8 +353,8 @@ pen_x += delta.x >> 6; } - gbox.xmin= g->box.xmin + pen_x; - gbox.xmax= g->box.xmax + pen_x; + gbox.xmin= pen_x; + gbox.xmax= pen_x + g->advance; gbox.ymin= g->box.ymin + pen_y; gbox.ymax= g->box.ymax + pen_y; Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c =================================================================== --- trunk/blender/source/blender/editors/interface/interface_widgets.c 2009-09-21 21:19:58 UTC (rev 23410) +++ trunk/blender/source/blender/editors/interface/interface_widgets.c 2009-09-21 21:26:04 UTC (rev 23411) @@ -773,7 +773,8 @@ /* sets but->ofs to make sure text is correctly visible */ static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect) { - int okwidth= rect->xmax-rect->xmin; + int border= (but->flag & UI_BUT_ALIGN_RIGHT)? 8: 10; + int okwidth= rect->xmax-rect->xmin - border; /* need to set this first */ uiStyleFontSet(fstyle); @@ -842,11 +843,8 @@ but->drawstr[selend_tmp]= ch; - /* if at pos 0, leave a bit more to the left */ - t= (pos == 0)? 0: 1; - glColor3ubv((unsigned char*)wcol->item); - glRects(rect->xmin+selsta_draw+1, rect->ymin+2, rect->xmin+selwidth_draw+1, rect->ymax-2); + glRects(rect->xmin+selsta_draw, rect->ymin+2, rect->xmin+selwidth_draw, rect->ymax-2); } } else { /* text cursor */ @@ -861,9 +859,6 @@ but->drawstr[pos]= ch; } - /* if at pos 0, leave a bit more to the left */ - t += (pos == 0)? 0: 1; - glColor3ub(255,0,0); glRects(rect->xmin+t, rect->ymin+2, rect->xmin+t+2, rect->ymax-2); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs