comparison pidgin/gtkblist.c @ 21772:21371ea85970

Fix boldifying the chat entries in the buddylist.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 05 Dec 2007 00:14:13 +0000
parents 3303c02a46f5
children 6a287408bc54
comparison
equal deleted inserted replaced
21771:3303c02a46f5 21772:21371ea85970
4095 static void 4095 static void
4096 written_msg_update_ui_cb(PurpleAccount *account, const char *who, const char *message, 4096 written_msg_update_ui_cb(PurpleAccount *account, const char *who, const char *message,
4097 PurpleConversation *conv, PurpleMessageFlags flag, PurpleBlistNode *node) 4097 PurpleConversation *conv, PurpleMessageFlags flag, PurpleBlistNode *node)
4098 { 4098 {
4099 PidginBlistNode *ui = node->ui_data; 4099 PidginBlistNode *ui = node->ui_data;
4100 if (ui->conv.conv != conv || PIDGIN_CONVERSATION(conv) || 4100 if (ui->conv.conv != conv || !pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv)) ||
4101 !(flag & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV))) 4101 !(flag & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)))
4102 return; 4102 return;
4103 ui->conv.flags |= PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE; 4103 ui->conv.flags |= PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE;
4104 ui->conv.last_message = time(NULL); /* XXX: for lack of better data */ 4104 ui->conv.last_message = time(NULL); /* XXX: for lack of better data */
4105 pidgin_blist_update(purple_get_blist(), node); 4105 pidgin_blist_update(purple_get_blist(), node);
4106 } 4106 }
4107 4107
4108 static void 4108 static void
4109 displayed_msg_update_ui_cb(PurpleAccount *account, const char *who, const char *message, 4109 displayed_msg_update_ui_cb(PidginConversation *gtkconv, PurpleBlistNode *node)
4110 PurpleConversation *conv, PurpleMessageFlags flag, PurpleBlistNode *node)
4111 { 4110 {
4112 PidginBlistNode *ui = node->ui_data; 4111 PidginBlistNode *ui = node->ui_data;
4113 if (ui->conv.conv != conv) 4112 if (ui->conv.conv != gtkconv->active_conv)
4114 return; 4113 return;
4115 ui->conv.flags &= ~PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE; 4114 ui->conv.flags &= ~PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE;
4116 pidgin_blist_update(purple_get_blist(), node); 4115 pidgin_blist_update(purple_get_blist(), node);
4117 } 4116 }
4118 4117
4134 ui->conv.last_message = 0; 4133 ui->conv.last_message = 0;
4135 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation", 4134 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation",
4136 ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui); 4135 ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui);
4137 purple_signal_connect(purple_conversations_get_handle(), "wrote-im-msg", 4136 purple_signal_connect(purple_conversations_get_handle(), "wrote-im-msg",
4138 ui, PURPLE_CALLBACK(written_msg_update_ui_cb), buddy); 4137 ui, PURPLE_CALLBACK(written_msg_update_ui_cb), buddy);
4139 purple_signal_connect(pidgin_conversations_get_handle(), "displayed-im-msg", 4138 purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed",
4140 ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), buddy); 4139 ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), buddy);
4141 } 4140 }
4142 } 4141 }
4142 break;
4143 case PURPLE_CONV_TYPE_CHAT: 4143 case PURPLE_CONV_TYPE_CHAT:
4144 { 4144 {
4145 PurpleChat *chat = purple_blist_find_chat(conv->account, conv->name); 4145 PurpleChat *chat = purple_blist_find_chat(conv->account, conv->name);
4146 struct _pidgin_blist_node *ui; 4146 struct _pidgin_blist_node *ui;
4147 if (!chat) 4147 if (!chat)
4154 ui->conv.last_message = 0; 4154 ui->conv.last_message = 0;
4155 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation", 4155 purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation",
4156 ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui); 4156 ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui);
4157 purple_signal_connect(purple_conversations_get_handle(), "wrote-chat-msg", 4157 purple_signal_connect(purple_conversations_get_handle(), "wrote-chat-msg",
4158 ui, PURPLE_CALLBACK(written_msg_update_ui_cb), chat); 4158 ui, PURPLE_CALLBACK(written_msg_update_ui_cb), chat);
4159 purple_signal_connect(pidgin_conversations_get_handle(), "displayed-chat-msg", 4159 purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed",
4160 ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), chat); 4160 ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), chat);
4161 } 4161 }
4162 break;
4162 default: 4163 default:
4163 break; 4164 break;
4164 } 4165 }
4165 } 4166 }
4166 4167
5965 if (!insert_node(list, node, &iter)) 5966 if (!insert_node(list, node, &iter))
5966 return; 5967 return;
5967 5968
5968 ui = node->ui_data; 5969 ui = node->ui_data;
5969 conv = ui->conv.conv; 5970 conv = ui->conv.conv;
5970 hidden = (conv && (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE)); 5971 hidden = (conv && (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE) &&
5972 pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv)));
5971 5973
5972 status = pidgin_blist_get_status_icon(node, 5974 status = pidgin_blist_get_status_icon(node,
5973 biglist ? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL); 5975 biglist ? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL);
5974 emblem = pidgin_blist_get_emblem(node); 5976 emblem = pidgin_blist_get_emblem(node);
5975 5977