pidgin/gtkblist.c

changeset 21894
c7c35f9b87f7
parent 21891
43b8ee31fb10
child 21903
5b5ad54ae1da
child 21960
156628be3fe9
equal deleted inserted replaced
21893:c01f39ef23db 21894:c7c35f9b87f7
3181 tmp = g_markup_escape_text(chat->account->username, -1); 3181 tmp = g_markup_escape_text(chat->account->username, -1);
3182 g_string_append_printf(str, _("\n<b>Account:</b> %s"), tmp); 3182 g_string_append_printf(str, _("\n<b>Account:</b> %s"), tmp);
3183 g_free(tmp); 3183 g_free(tmp);
3184 } 3184 }
3185 3185
3186 if (bnode && bnode->conv.conv) { 3186 if (bnode && bnode->conv.conv &&
3187 prpl_info && (prpl_info->options & OPT_PROTO_CHAT_TOPIC) &&
3188 !purple_conv_chat_has_left(PURPLE_CONV_CHAT(bnode->conv.conv))) {
3187 const char *topic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(bnode->conv.conv)); 3189 const char *topic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(bnode->conv.conv));
3188 g_string_append_printf(str, _("\n<b>Topic:</b> %s"), topic ? topic : _("(no topic set)")); 3190 g_string_append_printf(str, _("\n<b>Topic:</b> %s"), topic ? topic : _("(no topic set)"));
3189 } 3191 }
3190 3192
3191 if (prpl_info->chat_info != NULL) 3193 if (prpl_info->chat_info != NULL)
3255 } 3257 }
3256 3258
3257 /* Alias */ 3259 /* Alias */
3258 /* If there's not a contact alias, the node is being displayed with 3260 /* If there's not a contact alias, the node is being displayed with
3259 * this alias, so there's no point in showing it in the tooltip. */ 3261 * this alias, so there's no point in showing it in the tooltip. */
3260 if (full && b->alias != NULL && b->alias[0] != '\0' && 3262 if (full && c && b->alias != NULL && b->alias[0] != '\0' &&
3261 (c->alias != NULL && c->alias[0] != '\0') && 3263 (c->alias != NULL && c->alias[0] != '\0') &&
3262 strcmp(c->alias, b->alias) != 0) 3264 strcmp(c->alias, b->alias) != 0)
3263 { 3265 {
3264 tmp = g_markup_escape_text(b->alias, -1); 3266 tmp = g_markup_escape_text(b->alias, -1);
3265 purple_notify_user_info_add_pair(user_info, _("Buddy Alias"), tmp); 3267 purple_notify_user_info_add_pair(user_info, _("Buddy Alias"), tmp);
3306 g_free(tmp); 3308 g_free(tmp);
3307 } 3309 }
3308 } 3310 }
3309 3311
3310 /* Last Seen */ 3312 /* Last Seen */
3311 if (full && !PURPLE_BUDDY_IS_ONLINE(b)) 3313 if (full && c && !PURPLE_BUDDY_IS_ONLINE(b))
3312 { 3314 {
3313 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode *)c)->ui_data; 3315 struct _pidgin_blist_node *gtknode = ((PurpleBlistNode *)c)->ui_data;
3314 PurpleBlistNode *bnode; 3316 PurpleBlistNode *bnode;
3315 int lastseen = 0; 3317 int lastseen = 0;
3316 3318
3317 if (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node)) 3319 if (gtknode && (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node)))
3318 { 3320 {
3319 /* We're either looking at a buddy for a collapsed contact or 3321 /* We're either looking at a buddy for a collapsed contact or
3320 * an expanded contact itself so we show the most recent 3322 * an expanded contact itself so we show the most recent
3321 * (largest) last_seen time for any of the buddies under 3323 * (largest) last_seen time for any of the buddies under
3322 * the contact. */ 3324 * the contact. */

mercurial