Mercurial > pidgin
diff src/conversation.c @ 12618:204bd8fac61f
[gaim-migrate @ 14954]
SF Patch #1355796 from Sadrul
This fixes the custom smiley bug where your text gets smilies from the other party in the conversation.
This is a bit of a hack, but it fix things until such time as the smiley tree stuff can be reworked.
" From the kwiki:
If someone uses an MSN smiley, it shows up when I type
the textual representation of it. For example, someone
set a smiley (a rainbow flashy question mark) for ? and
it showed up (on my side, I have no idea about theirs)
for every ? I typed. /luke as I understand this report,
the problem is that the custom smiley should be
restricted to exactly one conversation but is in fact
spanning the account/
* (sadrul) It appears what happens is, the custom
smiley is added to the smiley-tree for that
conversation-imhtml. So whenever any new message is
going to be added to the imhtml, it looks up the
smiley-tree first, and since the "?" (or anything else)
matches the smiley, it converts it to the smiley. At
first glance, it seems the fix would be non-trivial. It
will probably be necessary to distinguish between
custom-smileys (and also messages added to the imhtml)
of the sender and the receiver.
==== end ====
What this patch does is, it temporarily replaces the
smiley-tree for the conversation-imhtml with the
smiley-tree of the conversation-entrybox. I think this
will work because the smiley-trees of both these
imhtml-s are initially the same. When a custom smiley
is received, it is added the smiley-tree of the
conversation-imhtml. So temporarily restoring the
smiley-tree with the original smiley-tree (that in
conv-entrybox) should fix the problem."
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Thu, 22 Dec 2005 04:07:21 +0000 |
parents | 71299d63801d |
children | 851b0bd7eb52 |
line wrap: on
line diff
--- a/src/conversation.c Thu Dec 22 04:07:00 2005 +0000 +++ b/src/conversation.c Thu Dec 22 04:07:21 2005 +0000 @@ -1139,7 +1139,8 @@ gboolean gaim_conv_custom_smiley_add(GaimConversation *conv, const char *smile, - const char *cksum_type, const char *chksum) + const char *cksum_type, const char *chksum, + gboolean remote) { if (conv == NULL || smile == NULL || !*smile) { return FALSE; @@ -1148,7 +1149,7 @@ /* TODO: check if the icon is in the cache and return false if so */ /* TODO: add an icon cache (that doesn't suck) */ if (conv->ui_ops != NULL && conv->ui_ops->custom_smiley_add !=NULL) { - return conv->ui_ops->custom_smiley_add(conv, smile); + return conv->ui_ops->custom_smiley_add(conv, smile, remote); } else { gaim_debug_info("conversation", "Could not find add custom smiley function"); return FALSE;