[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