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

Reply via email to