Mercurial > pidgin.yaz
comparison src/gtklog.c @ 7454:50f4386a8262
[gaim-migrate @ 8067]
I made the log viewer's close button worked, also fixing a memleak when
using the x to close the window.
I feel wheat.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 07 Nov 2003 03:27:45 +0000 |
parents | 8c0527c91a92 |
children | 8126e7a422b0 |
comparison
equal
deleted
inserted
replaced
7453:6f5918e4f668 | 7454:50f4386a8262 |
---|---|
59 !strcmp(normal, gaim_normalize(b->account, b->screenname)); | 59 !strcmp(normal, gaim_normalize(b->account, b->screenname)); |
60 g_free(normal); | 60 g_free(normal); |
61 return ret; | 61 return ret; |
62 } | 62 } |
63 | 63 |
64 static void log_select(GtkTreeSelection *sel, GaimGtkLogViewer *viewer) { | 64 static gboolean destroy_cb(GtkWidget *w, gint resp, struct log_viewer_hash_t *ht) { |
65 GaimGtkLogViewer *lv = g_hash_table_lookup(log_viewers, ht); | |
66 | |
67 g_hash_table_remove(log_viewers, ht); | |
68 g_free(ht->screenname); | |
69 g_free(ht); | |
70 g_free(lv); | |
71 gtk_widget_destroy(w); | |
72 | |
73 return TRUE; | |
74 } | |
75 | |
76 static void log_select_cb(GtkTreeSelection *sel, GaimGtkLogViewer *viewer) { | |
65 GtkTreeIter iter; | 77 GtkTreeIter iter; |
66 GValue val = { 0, }; | 78 GValue val = { 0, }; |
67 GtkTreeModel *model = GTK_TREE_MODEL(viewer->treestore); | 79 GtkTreeModel *model = GTK_TREE_MODEL(viewer->treestore); |
68 GaimLog *log = NULL; | 80 GaimLog *log = NULL; |
69 GaimLogReadFlags flags; | 81 GaimLogReadFlags flags; |
149 lv->window = gtk_dialog_new_with_buttons(screenname, NULL, 0, | 161 lv->window = gtk_dialog_new_with_buttons(screenname, NULL, 0, |
150 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); | 162 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); |
151 gtk_container_set_border_width (GTK_CONTAINER(lv->window), 6); | 163 gtk_container_set_border_width (GTK_CONTAINER(lv->window), 6); |
152 gtk_dialog_set_has_separator(GTK_DIALOG(lv->window), FALSE); | 164 gtk_dialog_set_has_separator(GTK_DIALOG(lv->window), FALSE); |
153 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(lv->window)->vbox), 0); | 165 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(lv->window)->vbox), 0); |
154 | 166 g_signal_connect(G_OBJECT(lv->window), "response", |
167 G_CALLBACK(destroy_cb), ht); | |
168 | |
155 hbox = gtk_hbox_new(FALSE, 6); | 169 hbox = gtk_hbox_new(FALSE, 6); |
156 gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); | 170 gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); |
157 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(lv->window)->vbox), hbox, FALSE, FALSE, 0); | 171 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(lv->window)->vbox), hbox, FALSE, FALSE, 0); |
158 | 172 |
159 /* Icon *************/ | 173 /* Icon *************/ |
193 gtk_widget_set_size_request(lv->treeview, 170, 200); | 207 gtk_widget_set_size_request(lv->treeview, 170, 200); |
194 populate_log_tree(lv); | 208 populate_log_tree(lv); |
195 | 209 |
196 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (lv->treeview)); | 210 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (lv->treeview)); |
197 g_signal_connect (G_OBJECT (sel), "changed", | 211 g_signal_connect (G_OBJECT (sel), "changed", |
198 G_CALLBACK (log_select), | 212 G_CALLBACK (log_select_cb), |
199 lv); | 213 lv); |
200 | 214 |
201 /* Viewer ************/ | 215 /* Viewer ************/ |
202 vbox = gtk_vbox_new(FALSE, 6); | 216 vbox = gtk_vbox_new(FALSE, 6); |
203 gtk_paned_add2(GTK_PANED(pane), vbox); | 217 gtk_paned_add2(GTK_PANED(pane), vbox); |