Mercurial > pidgin
diff src/gtkhtml.c @ 481:64afc8f41bcb
[gaim-migrate @ 491]
smileys don't cause dropping of font attributes.
gtkhtml handles multiple text much better.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Mon, 10 Jul 2000 02:53:14 +0000 |
| parents | a4df8f1cc61a |
| children | 56399273ed8d |
line wrap: on
line diff
--- a/src/gtkhtml.c Mon Jul 10 01:22:57 2000 +0000 +++ b/src/gtkhtml.c Mon Jul 10 02:53:14 2000 +0000 @@ -3098,20 +3098,34 @@ *url = NULL; gint intag = 0, wpos = 0, - tpos = 0, - colorv, + tpos = 0; + static gint colorv, bold = 0, italic = 0, fixed = 0, uline = 0, strike = 0, - title = 0; - gint height; - struct font_state *current, + title = 0, + height; + static struct font_state *current = NULL, *tmp; - struct font_state def_state = { 3, 0, 0, "", NULL, NULL, NULL }; - - current = &def_state; + static struct font_state def_state = { 3, 0, 0, "", NULL, NULL, NULL }; + + if (text == NULL) { + while (current->next) + { + if (current->ownbg) + g_free(current->bgcol); + if (current->owncolor) + g_free(current->color); + tmp = current; + current = current->next; + g_free(tmp); + } + return; + } + + if (!current) current = &def_state; map = gdk_window_get_colormap(html->html_area); cfont = getfont(current->font, bold, italic, fixed, current->size); c = text; @@ -3477,16 +3491,6 @@ } c++; } - while (current->next) - { - if (current->ownbg) - g_free(current->bgcol); - if (current->owncolor) - g_free(current->color); - tmp = current; - current = current->next; - g_free(tmp); - } ws[wpos] = 0; tag[tpos] = 0; if (wpos) @@ -4188,6 +4192,8 @@ g_return_if_fail(html != NULL); g_return_if_fail(GTK_IS_HTML(html)); + gtk_html_append_text(html, NULL, 0); + html->frozen--; if (html->frozen < 0)
