| 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) |