| 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. */ |