[Bf-blender-cvs] [3ab4083] temp-blf-wordwrap: Clamp tooltips within the window size.

Campbell Barton noreply at git.blender.org
Sat Aug 29 16:17:59 CEST 2015


Commit: 3ab4083c0a9c5a0b575b7c5f865bf3ddf36f527c
Author: Campbell Barton
Date:   Sat Aug 29 22:01:48 2015 +1000
Branches: temp-blf-wordwrap
https://developer.blender.org/rB3ab4083c0a9c5a0b575b7c5f865bf3ddf36f527c

Clamp tooltips within the window size.

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

M	source/blender/editors/interface/interface_regions.c

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

diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 6de5aa72..5b0365d 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -178,6 +178,8 @@ typedef struct uiTooltipData {
 		unsigned int lines_wrap;
 	} line_geom[MAX_TOOLTIP_LINES];
 
+	int wrap_width;
+
 	int totline;
 	int toth, lineh;
 } uiTooltipData;
@@ -257,8 +259,8 @@ static void ui_tooltip_region_draw_cb(const bContext *UNUSED(C), ARegion *ar)
 	rgb_tint(alert_color,  0.0f, 0.8f, tone_bg, 0.1f);  /* red        */
 
 	/* draw text */
-	BLF_wordwrap_width(data->fstyle.uifont_id, UI_TIP_MAXWIDTH * U.pixelsize);
-	BLF_wordwrap_width(blf_mono_font, UI_TIP_MAXWIDTH * U.pixelsize);
+	BLF_wordwrap_width(data->fstyle.uifont_id, data->wrap_width);
+	BLF_wordwrap_width(blf_mono_font, data->wrap_width);
 
 	bbox.xmin += 0.5f * pad_px;  /* add padding to the text */
 	bbox.ymax -= 0.25f * pad_px;
@@ -586,14 +588,16 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
 
 	UI_fontstyle_set(&data->fstyle);
 
+	data->wrap_width = min_ii(UI_TIP_MAXWIDTH * U.pixelsize, WM_window_pixels_x(win) - (UI_TIP_PADDING * 2));
+
 	font_flag |= BLF_WORDWRAP;
 	if (data->fstyle.kerning == 1) {
 		font_flag |= BLF_KERNING_DEFAULT;
 	}
 	BLF_enable(data->fstyle.uifont_id, font_flag);
 	BLF_enable(blf_mono_font, font_flag);
-	BLF_wordwrap_width(data->fstyle.uifont_id, UI_TIP_MAXWIDTH * U.pixelsize);
-	BLF_wordwrap_width(blf_mono_font, UI_TIP_MAXWIDTH * U.pixelsize);
+	BLF_wordwrap_width(data->fstyle.uifont_id, data->wrap_width);
+	BLF_wordwrap_width(blf_mono_font, data->wrap_width);
 
 	/* these defines tweaked depending on font */
 #define TIP_BORDER_X (16.0f / aspect)




More information about the Bf-blender-cvs mailing list