diff options
author | Stu Tomlinson <nosnilmot@pidgin.im> | 2007-05-11 20:06:57 +0000 |
---|---|---|
committer | Stu Tomlinson <nosnilmot@pidgin.im> | 2007-05-11 20:06:57 +0000 |
commit | eb3002bf2c2d78b834a5d59db8a7226522fe286c (patch) | |
tree | 43b36667dab32b0de1b270c9ca37fb4ac1d5db02 | |
parent | f522203cfcfdbf3ce730ad77206775cf23088fd4 (diff) | |
download | pidgin-eb3002bf2c2d78b834a5d59db8a7226522fe286c.tar.gz |
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.
-rw-r--r-- | pidgin/gtkimhtml.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/pidgin/gtkimhtml.c b/pidgin/gtkimhtml.c index 44a431cf93..15a564c54f 100644 --- a/pidgin/gtkimhtml.c +++ b/pidgin/gtkimhtml.c @@ -2761,7 +2761,8 @@ void gtk_imhtml_insert_html_at_iter(GtkIMHtml *imhtml, } 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 @@ void gtk_imhtml_insert_html_at_iter(GtkIMHtml *imhtml, 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 @@ void gtk_imhtml_insert_html_at_iter(GtkIMHtml *imhtml, 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); } |