From: Rob F. <rob...@us...> - 2001-10-23 00:19:41
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv22649/src Modified Files: away.c Log Message: Well, touch my belly and call me Olga! Index: away.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/away.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- away.c 2001/10/14 11:36:36 1.62 +++ away.c 2001/10/23 00:19:38 1.63 @@ -85,6 +85,51 @@ gtk_clist_thaw(GTK_CLIST(clistqueue)); } +void dequeue_by_buddy(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { + char *temp; + char *name; + GSList *templist; + struct conversation *cnv; + + if(!(event->type == GDK_2BUTTON_PRESS && event->button == 1)) + return; /* Double clicking on the clist will unqueue that users messages. */ + + gtk_clist_get_text(GTK_CLIST(clist), row, 0, &temp); + name = g_strdup(temp); + + if (!name) + return; + debug_printf("Unqueueing messages from %s.\n", name); + templist = message_queue; + while (templist) { + struct queued_message *qm = templist->data; + if (templist->data) { + if (!g_strcasecmp(qm->name, name)) { + cnv = find_conversation(name); + if (!cnv) + cnv = new_conversation(qm->name); + if (g_slist_index(connections, qm->gc) >= 0) + set_convo_gc(cnv, qm->gc); + + write_to_conv(cnv, qm->message, qm->flags, NULL, qm->tm); + g_free(qm->message); + g_free(qm); + templist = message_queue = g_slist_remove(message_queue, qm); + + } else { + templist = templist->next; + } + } + } + g_free(name); + gtk_clist_remove(GTK_CLIST(clist), row); + + +} + + + + void toggle_away_queue() { if (!clistqueue || !clistqueuesw) @@ -187,6 +232,9 @@ gtk_clist_set_column_width(GTK_CLIST(clistqueue), 0, 100); gtk_widget_set_usize(GTK_WIDGET(clistqueue), -1, 50); gtk_container_add(GTK_CONTAINER(clistqueuesw), clistqueue); + gtk_signal_connect(GTK_OBJECT(clistqueue), "select_row", GTK_SIGNAL_FUNC(dequeue_by_buddy), NULL); + + if (away_options & OPT_AWAY_QUEUE) { gtk_widget_show(clistqueuesw); |