Mercurial > pidgin.yaz
changeset 17055:53e757c37e06
Ignore bold, underline and other formatting type things in SPAN tags if
"Show formatting on incoming messages" is turned off. This makes handling
of these things consistent with other formatting tags.
Fixes #520.
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Fri, 11 May 2007 20:06:57 +0000 |
parents | 8ad7750b0391 |
children | 413c957e7c44 21830d70709b |
files | pidgin/gtkimhtml.c |
diffstat | 1 files changed, 17 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtkimhtml.c Fri May 11 17:05:59 2007 +0000 +++ b/pidgin/gtkimhtml.c Fri May 11 20:06:57 2007 +0000 @@ -2761,7 +2761,8 @@ } if (textdec && font->underline != 1 && g_ascii_strcasecmp(textdec, "underline") == 0 - && (imhtml->format_functions & GTK_IMHTML_UNDERLINE)) + && (imhtml->format_functions & GTK_IMHTML_UNDERLINE) + && !(options & GTK_IMHTML_NO_FORMATTING)) { gtk_imhtml_toggle_underline(imhtml); font->underline = 1; @@ -2790,7 +2791,7 @@ else font->bold = 0; } - if ((font->bold && oldfont && !oldfont->bold) || (oldfont && oldfont->bold && !font->bold) || (font->bold && !oldfont)) + if (((font->bold && oldfont && !oldfont->bold) || (oldfont && oldfont->bold && !font->bold) || (font->bold && !oldfont)) && !(options & GTK_IMHTML_NO_FORMATTING)) { gtk_imhtml_toggle_bold(imhtml); } @@ -2816,33 +2817,36 @@ if (!oldfont) { gtk_imhtml_font_set_size(imhtml, 3); - if (font->underline) + if (font->underline && !(options & GTK_IMHTML_NO_FORMATTING)) gtk_imhtml_toggle_underline(imhtml); - if (font->bold) + if (font->bold && !(options & GTK_IMHTML_NO_FORMATTING)) gtk_imhtml_toggle_bold(imhtml); - gtk_imhtml_toggle_fontface(imhtml, NULL); - gtk_imhtml_toggle_forecolor(imhtml, NULL); - gtk_imhtml_toggle_backcolor(imhtml, NULL); + if (!(options & GTK_IMHTML_NO_FONTS)) + gtk_imhtml_toggle_fontface(imhtml, NULL); + if (!(options & GTK_IMHTML_NO_COLOURS)) + gtk_imhtml_toggle_forecolor(imhtml, NULL); + if (!(options & GTK_IMHTML_NO_COLOURS)) + gtk_imhtml_toggle_backcolor(imhtml, NULL); } else { - if (font->size != oldfont->size) + if ((font->size != oldfont->size) && !(options & GTK_IMHTML_NO_SIZES)) gtk_imhtml_font_set_size(imhtml, oldfont->size); - if (font->underline != oldfont->underline) + if ((font->underline != oldfont->underline) && !(options & GTK_IMHTML_NO_FORMATTING)) gtk_imhtml_toggle_underline(imhtml); - if ((font->bold && !oldfont->bold) || (oldfont->bold && !font->bold)) + if (((font->bold && !oldfont->bold) || (oldfont->bold && !font->bold)) && !(options & GTK_IMHTML_NO_FORMATTING)) gtk_imhtml_toggle_bold(imhtml); - if (font->face && (!oldfont->face || strcmp(font->face, oldfont->face) != 0)) + if (font->face && (!oldfont->face || strcmp(font->face, oldfont->face) != 0) && !(options & GTK_IMHTML_NO_FONTS)) gtk_imhtml_toggle_fontface(imhtml, oldfont->face); - if (font->fore && (!oldfont->fore || strcmp(font->fore, oldfont->fore) != 0)) + if (font->fore && (!oldfont->fore || strcmp(font->fore, oldfont->fore) != 0) && !(options & GTK_IMHTML_NO_COLOURS)) gtk_imhtml_toggle_forecolor(imhtml, oldfont->fore); - if (font->back && (!oldfont->back || strcmp(font->back, oldfont->back) != 0)) + if (font->back && (!oldfont->back || strcmp(font->back, oldfont->back) != 0) && !(options & GTK_IMHTML_NO_COLOURS)) gtk_imhtml_toggle_backcolor(imhtml, oldfont->back); }