[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23411] trunk/blender/source/blender: Fix #19427, problem in blenfont not computing the width of text correct,

Brecht Van Lommel brecht at blender.org
Mon Sep 21 23:26:04 CEST 2009


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);
 			}





More information about the Bf-blender-cvs mailing list