src/away.c

changeset 1774
734cb657b51e
parent 1773
a3293b2b61fb
child 1775
16de02b8c378
equal deleted inserted replaced
1773:a3293b2b61fb 1774:734cb657b51e
49 49
50 static void destroy_im_away() 50 static void destroy_im_away()
51 { 51 {
52 if (imaway) 52 if (imaway)
53 gtk_widget_destroy(imaway); 53 gtk_widget_destroy(imaway);
54
55 clistqueue = NULL;
56 clistqueuesw = NULL;
54 imaway = NULL; 57 imaway = NULL;
55 } 58 }
56 59
57 void purge_away_queue() 60 void purge_away_queue()
58 { 61 {
59 struct conversation *cnv; 62 struct conversation *cnv;
60 GSList *templist = message_queue; 63 GSList *templist = message_queue;
61 64
62 gtk_clist_freeze(GTK_CLIST(clistqueue)); 65 gtk_clist_freeze(GTK_CLIST(clistqueue));
63
64 gtk_clist_clear(GTK_CLIST(clistqueue)); 66 gtk_clist_clear(GTK_CLIST(clistqueue));
65 67
66 while (templist) 68 while (templist)
67 { 69 {
68 struct queued_message *qm = (struct queued_message *)templist->data; 70 struct queued_message *qm = (struct queued_message *)templist->data;
78 80
79 free(qm->message); 81 free(qm->message);
80 82
81 templist = g_slist_remove(templist, qm); 83 templist = g_slist_remove(templist, qm);
82 84
83 free(qm); 85 g_free(qm);
86 }
87
88 templist = away_time_queue;
89
90 while (templist)
91 {
92 struct queued_away_response *qar = (struct queued_away_response *)templist->data;
93
94 templist = g_slist_remove(templist, qar);
95 g_free(qar);
84 } 96 }
85 97
86 gtk_clist_thaw(GTK_CLIST(clistqueue)); 98 gtk_clist_thaw(GTK_CLIST(clistqueue));
87 99
88 message_queue = NULL; 100 message_queue = NULL;
101 away_time_queue = NULL;
89 } 102 }
90 103
91 void toggle_away_queue() 104 void toggle_away_queue()
92 { 105 {
93 if (!clistqueue || !clistqueuesw) 106 if (!clistqueue || !clistqueuesw)

mercurial