Mercurial > pidgin.yaz
changeset 4369:7e1fb422e5fd
[gaim-migrate @ 4635]
Fixes a couple crash bugs. We're getting there!
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Mon, 20 Jan 2003 22:39:39 +0000 |
parents | 9c83a731a3ea |
children | d856987c72ca |
files | src/conversation.c src/gtkconv.c |
diffstat | 2 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/conversation.c Mon Jan 20 21:54:46 2003 +0000 +++ b/src/conversation.c Mon Jan 20 22:39:39 2003 +0000 @@ -447,9 +447,6 @@ ops = gaim_window_get_ops(win); - if (ops != NULL && ops->destroy_window != NULL) - ops->destroy_window(win); - for (node = g_list_first(gaim_window_get_conversations(win)); node != NULL; node = g_list_next(node)) @@ -464,6 +461,9 @@ node->data = NULL; } + if (ops != NULL && ops->destroy_window != NULL) + ops->destroy_window(win); + g_list_free(gaim_window_get_conversations(win)); windows = g_list_remove(windows, win); @@ -589,9 +589,8 @@ { struct gaim_window_ops *ops; - if (win == NULL || conv == NULL) { + if (win == NULL || conv == NULL) return -1; - } if (gaim_conversation_get_window(conv) != NULL) { gaim_window_remove_conversation( @@ -607,13 +606,13 @@ conv->conversation_pos = win->conversation_count - 1; if (ops != NULL) { + conv->window = win; + if (ops->get_conversation_ops != NULL) gaim_conversation_set_ops(conv, ops->get_conversation_ops()); if (ops->add_conversation != NULL) ops->add_conversation(win, conv); - - conv->window = win; } return win->conversation_count - 1;
--- a/src/gtkconv.c Mon Jan 20 21:54:46 2003 +0000 +++ b/src/gtkconv.c Mon Jan 20 22:39:39 2003 +0000 @@ -1650,8 +1650,7 @@ dnd_hints_hide_all(); - dest_win = gaim_gtkwin_get_at_xy(e->x_root, e->y_root); - dest_gtkwin = GAIM_GTK_WINDOW(dest_win); + dest_win = gaim_gtkwin_get_at_xy(e->x_root, e->y_root); conv = gaim_window_get_active_conversation(win); @@ -1673,6 +1672,8 @@ return TRUE; } + dest_gtkwin = GAIM_GTK_WINDOW(dest_win); + /* Get the destination notebook. */ dest_notebook = GTK_NOTEBOOK(gtkwin->notebook); @@ -3228,8 +3229,12 @@ { struct gaim_gtk_window *gtkwin = GAIM_GTK_WINDOW(win); + gaim_gtk_set_state_lock(TRUE); + gtk_widget_destroy(gtkwin->window); + gaim_gtk_set_state_lock(FALSE); + g_free(gtkwin); win->ui_data = NULL; }