Mercurial > pidgin.yaz
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 |