From: Luke S. <lsc...@us...> - 2006-01-06 04:46:09
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29010/src Modified Files: gtkblist.c Log Message: " Adds an emblem to a buddy if they have a queued message (hidden conversation). In the large buddy list it is added in the northwest corner, sliding the existing northwest emblem (if specified) to the northeast position and discarding the northeast emblem. In the small buddy list, the emblem is added to the southeast. Attached is a patch and an emblem image to be dropped in pixmaps/status/default/. The emblem image is a scaled down version of the send-im.png image." -- Casey Harkins as I asked for this patch, and since there don't seem to be objections to it (yet), I'm going ahead and applying it. Index: gtkblist.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkblist.c,v retrieving revision 1.381 retrieving revision 1.382 diff -u -d -p -r1.381 -r1.382 --- gtkblist.c 4 Jan 2006 04:19:23 -0000 1.381 +++ gtkblist.c 6 Jan 2006 04:46:00 -0000 1.382 @@ -2859,6 +2859,25 @@ gaim_gtk_blist_get_status_icon(GaimBlist } } + if(buddy) { + GaimConversation *conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, + gaim_buddy_get_name(buddy), + gaim_buddy_get_account(buddy)); + if(conv != NULL) { + GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); + if(gtkconv != NULL && gaim_gtkconv_is_hidden(gtkconv)) { + /* add pending emblem */ + if(size == GAIM_STATUS_ICON_SMALL) { + emblems[0].filename="pending"; + } + else { + emblems[3].filename=emblems[2].filename; + emblems[2].filename="pending"; + } + } + } + } + if(size == GAIM_STATUS_ICON_SMALL) { scalesize = 15; /* So that only the se icon will composite */ @@ -3302,6 +3321,12 @@ conversation_updated_cb(GaimConversation if (type != GAIM_CONV_UPDATE_UNSEEN) return; + if(conv->account != NULL && conv->name != NULL) { + GaimBuddy *buddy = gaim_find_buddy(conv->account, conv->name); + if(buddy != NULL) + gaim_gtk_blist_update_buddy(NULL, (GaimBlistNode *)buddy); + } + if (gtkblist->menutrayicon) { gtk_widget_destroy(gtkblist->menutrayicon); gtkblist->menutrayicon = NULL; |