[Bf-blender-cvs] [d57847c] master: Fix text wrapping off-by-one error w/ string width

Campbell Barton noreply at git.blender.org
Sun Jan 3 15:49:16 CET 2016


Commit: d57847ca5b90573842911082005f36cec55a9ab6
Author: Campbell Barton
Date:   Mon Jan 4 01:41:00 2016 +1100
Branches: master
https://developer.blender.org/rBd57847ca5b90573842911082005f36cec55a9ab6

Fix text wrapping off-by-one error w/ string width

Caused odd white space error in tooltip enum values.

===================================================================

M	source/blender/blenfont/intern/blf_font.c
M	source/blender/editors/interface/interface_regions.c

===================================================================

diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 3f3ca78..bf3db19 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -721,11 +721,13 @@ static void blf_font_wrap_apply(
 		}
 		else if (UNLIKELY(g->c != ' ' && (g_prev ? g_prev->c == ' ' : false))) {
 			wrap.last[0] = i_curr;
-			wrap.last[1] = i;
+			wrap.last[1] = i_curr;
 		}
 
 		if (UNLIKELY(do_draw)) {
-			// printf("(%d..%d)  `%.*s`\n", wrap.start, wrap.last[0], (wrap.last[0] - wrap.start) - 1, &str[wrap.start]);
+			// printf("(%03d..%03d)  `%.*s`\n",
+			//        wrap.start, wrap.last[0], (wrap.last[0] - wrap.start) - 1, &str[wrap.start]);
+
 			callback(font, &str[wrap.start], (wrap.last[0] - wrap.start) - 1, pen_y, userdata);
 			wrap.start = wrap.last[0];
 			i = wrap.last[1];
@@ -740,7 +742,7 @@ static void blf_font_wrap_apply(
 		g_prev = g;
 	}
 
-	// printf("done! %d lines\n", lines);
+	// printf("done! lines: %d, width, %d\n", lines, pen_x_next);
 
 	if (r_info) {
 		r_info->lines = lines;
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 5fe6fd1..709071a 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -392,7 +392,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
 	if (but_tip.strinfo) {
 		BLI_strncpy(data->header, but_tip.strinfo, sizeof(data->lines[0]));
 		if (enum_label.strinfo) {
-			BLI_snprintf(data->header, sizeof(data->header), "%s:  ", but_tip.strinfo);
+			BLI_snprintf(data->header, sizeof(data->header), "%s: ", but_tip.strinfo);
 			BLI_strncpy(data->active_info, enum_label.strinfo, sizeof(data->lines[0]));
 		}
 		data->format[data->totline].style = UI_TIP_STYLE_HEADER;
@@ -616,7 +616,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
 		if (data->format[i].style == UI_TIP_STYLE_HEADER) {
 			w = BLF_width_ex(data->fstyle.uifont_id, data->header, sizeof(data->header), &info);
 			if (enum_label.strinfo) {
-				x_pos = info.width + (U.widget_unit / 2);
+				x_pos = info.width;
 				w = max_ii(w, x_pos + BLF_width(data->fstyle.uifont_id, data->active_info, sizeof(data->active_info)));
 			}
 		}




More information about the Bf-blender-cvs mailing list