# HG changeset patch # User Sadrul Habib Chowdhury # Date 1196818327 0 # Node ID 6a287408bc54cc6d0b5dd25832ac67112dabd93c # Parent 350c93aa44d3ec13d345e77dd79e72042459e8c9 Make sure we are still in the chat, and the chat can have a topic, when showing the topic in the tooltip. diff -r 350c93aa44d3 -r 6a287408bc54 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Wed Dec 05 00:42:26 2007 +0000 +++ b/pidgin/gtkblist.c Wed Dec 05 01:32:07 2007 +0000 @@ -3183,7 +3183,9 @@ g_free(tmp); } - if (bnode && bnode->conv.conv) { + if (bnode && bnode->conv.conv && + prpl_info && (prpl_info->options & OPT_PROTO_CHAT_TOPIC) && + !purple_conv_chat_has_left(PURPLE_CONV_CHAT(bnode->conv.conv))) { const char *topic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(bnode->conv.conv)); g_string_append_printf(str, _("\nTopic: %s"), topic ? topic : _("(no topic set)")); } @@ -3257,7 +3259,7 @@ /* Alias */ /* If there's not a contact alias, the node is being displayed with * this alias, so there's no point in showing it in the tooltip. */ - if (full && b->alias != NULL && b->alias[0] != '\0' && + if (full && c && b->alias != NULL && b->alias[0] != '\0' && (c->alias != NULL && c->alias[0] != '\0') && strcmp(c->alias, b->alias) != 0) { @@ -3308,13 +3310,13 @@ } /* Last Seen */ - if (full && !PURPLE_BUDDY_IS_ONLINE(b)) + if (full && c && !PURPLE_BUDDY_IS_ONLINE(b)) { struct _pidgin_blist_node *gtknode = ((PurpleBlistNode *)c)->ui_data; PurpleBlistNode *bnode; int lastseen = 0; - if (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node)) + if (gtknode && (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node))) { /* We're either looking at a buddy for a collapsed contact or * an expanded contact itself so we show the most recent