Mercurial > pidgin
diff src/gtkblist.c @ 12117:cb77957d644c
[gaim-migrate @ 14417]
changelogify the awesome queueing system from Casey Harkins, add my own touch of awesomeness to it, and commit a patch I found somewhere earlier today to fix crashing on NetBSD. It might have been in the tracker, I'll have to hunt for it
committer: Tailor Script <tailor@pidgin.im>
| author | Nathan Walp <nwalp@pidgin.im> |
|---|---|
| date | Wed, 16 Nov 2005 22:33:15 +0000 |
| parents | e75ef7aa913e |
| children | 312efb43c49a |
line wrap: on
line diff
--- a/src/gtkblist.c Wed Nov 16 18:17:01 2005 +0000 +++ b/src/gtkblist.c Wed Nov 16 22:33:15 2005 +0000 @@ -3136,23 +3136,38 @@ GaimGtkBuddyList *gtkblist) { GtkWidget *img = NULL; + GString *tooltip_text = NULL; if(gtkblist->menutrayicon) { gtk_widget_destroy(gtkblist->menutrayicon); gtkblist->menutrayicon = NULL; } - if(gaim_gtk_conversations_get_first_unseen(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT)) + if(gaim_gtk_conversations_get_first_unseen(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT)) { + GList *convs = gaim_get_ims(); + tooltip_text = g_string_new(""); + while(convs) { + conv = convs->data; + if(GAIM_IS_GTK_CONVERSATION(conv)) { + GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); + if(gtkconv->unseen_state >= GAIM_UNSEEN_TEXT) { + g_string_append_printf(tooltip_text, + _("Unread messages from %s\n"), gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); + } + } + convs = convs->next; + } + /* get rid of the last newline */ + tooltip_text = g_string_truncate(tooltip_text, tooltip_text->len -1); img = gtk_image_new_from_stock(GAIM_STOCK_PENDING, GTK_ICON_SIZE_MENU); - if(img) { gtkblist->menutrayicon = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(gtkblist->menutrayicon), img); gtk_widget_show(img); gtk_widget_show(gtkblist->menutrayicon); g_signal_connect(G_OBJECT(gtkblist->menutrayicon), "button-press-event", G_CALLBACK(menutray_press_cb), NULL); - - gaim_gtk_menu_tray_append(GAIM_GTK_MENU_TRAY(gtkblist->menutray), gtkblist->menutrayicon, NULL); + + gaim_gtk_menu_tray_append(GAIM_GTK_MENU_TRAY(gtkblist->menutray), gtkblist->menutrayicon, g_string_free(tooltip_text, FALSE)); } }
