Mercurial > pidgin
comparison src/conversation.h @ 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 | b1717befbb26 |
children | 851b0bd7eb52 |
comparison
equal
deleted
inserted
replaced
12617:49499dec9346 | 12618:204bd8fac61f |
---|---|
162 | 162 |
163 | 163 |
164 gboolean (*has_focus)(GaimConversation *conv); | 164 gboolean (*has_focus)(GaimConversation *conv); |
165 | 165 |
166 /* Custom Smileys */ | 166 /* Custom Smileys */ |
167 gboolean (*custom_smiley_add)(GaimConversation *conv, const char *smile); | 167 gboolean (*custom_smiley_add)(GaimConversation *conv, const char *smile, gboolean remote); |
168 void (*custom_smiley_write)(GaimConversation *conv, const char *smile, | 168 void (*custom_smiley_write)(GaimConversation *conv, const char *smile, |
169 const guchar *data, gsize size); | 169 const guchar *data, gsize size); |
170 void (*custom_smiley_close)(GaimConversation *conv, const char *smile); | 170 void (*custom_smiley_close)(GaimConversation *conv, const char *smile); |
171 | 171 |
172 /* Events */ | 172 /* Events */ |
767 * | 767 * |
768 * @param conv The conversation to associate the smiley with. | 768 * @param conv The conversation to associate the smiley with. |
769 * @param smile The text associated with the smiley | 769 * @param smile The text associated with the smiley |
770 * @param cksum_type The type of checksum. | 770 * @param cksum_type The type of checksum. |
771 * @param chksum The checksum, as a NUL terminated base64 string. | 771 * @param chksum The checksum, as a NUL terminated base64 string. |
772 * @param remote @c TRUE if the custom smiley is set by the remote user (buddy). | |
772 * @return @c TRUE if an icon is expected, else FALSE. Note that | 773 * @return @c TRUE if an icon is expected, else FALSE. Note that |
773 * it is an error to never call gaim_conv_custom_smiley_close if | 774 * it is an error to never call gaim_conv_custom_smiley_close if |
774 * this function returns @c TRUE, but an error to call it if | 775 * this function returns @c TRUE, but an error to call it if |
775 * @c FALSE is returned. | 776 * @c FALSE is returned. |
776 */ | 777 */ |
777 | 778 |
778 gboolean gaim_conv_custom_smiley_add(GaimConversation *conv, const char *smile, | 779 gboolean gaim_conv_custom_smiley_add(GaimConversation *conv, const char *smile, |
779 const char *cksum_type, const char *chksum); | 780 const char *cksum_type, const char *chksum, |
781 gboolean remote); | |
780 | 782 |
781 | 783 |
782 /** | 784 /** |
783 * Updates the image associated with the current smiley. | 785 * Updates the image associated with the current smiley. |
784 * | 786 * |