# HG changeset patch # User Stu Tomlinson # Date 1132836649 0 # Node ID ddcd92a32eeb6677fc7a397dfd3820021cd2c9e6 # Parent 201be1b681a4663dc89c73ae4f5dd0691eed9d5f [gaim-migrate @ 14510] Make the unread message thing in the buddy list respond to deleting conversations, and add a safety check to avoid trying to display a NULL conversation. committer: Tailor Script diff -r 201be1b681a4 -r ddcd92a32eeb src/gtkblist.c --- a/src/gtkblist.c Thu Nov 24 02:18:05 2005 +0000 +++ b/src/gtkblist.c Thu Nov 24 12:50:49 2005 +0000 @@ -3148,10 +3148,13 @@ static gboolean menutray_press_cb(GtkWidget *widget, GdkEventButton *event) { + GaimConversation *conv; + switch (event->button) { case 1: - gaim_gtkconv_present_conversation(gaim_gtk_conversations_get_first_unseen( - GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT)); + conv = gaim_gtk_conversations_get_first_unseen(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT); + if (conv != NULL) + gaim_gtkconv_present_conversation(conv); break; case 3: unseen_conv_menu(); @@ -3183,7 +3186,8 @@ if (gtkconv->unseen_state >= GAIM_UNSEEN_TEXT) { g_string_append_printf(tooltip_text, - _("%d unread message(s) from %s\n"), gtkconv->unseen_count, + ngettext("%d unread message from %s\n", "%d unread messages from %s\n", gtkconv->unseen_count), + gtkconv->unseen_count, gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); } convs = convs->next; @@ -3202,6 +3206,12 @@ } } +static void +conversation_deleting_cb(GaimConversation *conv, GaimGtkBuddyList *gtkblist) +{ + conversation_updated_cb(conv, GAIM_CONV_UPDATE_UNSEEN, gtkblist); +} + /********************************************************************************** * Public API Functions * **********************************************************************************/ @@ -3627,6 +3637,9 @@ gaim_signal_connect(gaim_conversations_get_handle(), "conversation-updated", gtkblist, GAIM_CALLBACK(conversation_updated_cb), gtkblist); + gaim_signal_connect(gaim_conversations_get_handle(), "deleting-conversation", + gtkblist, GAIM_CALLBACK(conversation_deleting_cb), + gtkblist); /* emit our created signal */ gaim_signal_emit(handle, "gtkblist-created", list);