From 6706b98088dc9982ef23a02661f7291ac6815469 Mon Sep 17 00:00:00 2001 From: corvid Date: Mon, 30 May 2011 13:22:57 +0000 Subject: Reintroduce @-escaping for tooltips. I don't know what case I managed to test where I thought it was unnecessary with 1.3. I do know that '&' has not been a problem... --- dw/fltkplatform.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'dw/fltkplatform.cc') diff --git a/dw/fltkplatform.cc b/dw/fltkplatform.cc index 00e1d07e..6d0b2ec4 100644 --- a/dw/fltkplatform.cc +++ b/dw/fltkplatform.cc @@ -191,10 +191,26 @@ FltkColor * FltkColor::create (int col) FltkTooltip::FltkTooltip (const char *text) : Tooltip(text) { + if (!strchr(text, '@')) { + escaped_str = NULL; + } else { + /* FLTK likes to interpret symbols, and so they must be escaped */ + const char *src = text; + char *dest = escaped_str = (char *) malloc(strlen(text) * 2 + 1); + + while (*src) { + if (*src == '@') + *dest++ = *src; + *dest++ = *src++; + } + *dest = '\0'; + } } FltkTooltip::~FltkTooltip () { + if (escaped_str) + free(escaped_str); } FltkTooltip *FltkTooltip::create (const char *text) @@ -207,7 +223,7 @@ void FltkTooltip::onEnter() Fl_Widget *widget = Fl::belowmouse(); Fl_Tooltip::enter_area(widget, widget->x(), widget->y(), widget->w(), - widget->h(), str); + widget->h(), escaped_str ? escaped_str : str); } void FltkTooltip::onLeave() -- cgit v1.2.3