# HG changeset patch # User Luke Schierer # Date 1068161380 0 # Node ID 685736e14aacbd22b1a9a14047f46408aa09926b # Parent 126fceb88bec913dd0eddd149ad86c38977deb41 [gaim-migrate @ 8061] from bug #836143 ----------------------------------------------------------------- Date: 2003-11-06 17:19 Sender: zuperdee Logged In: YES user_id=347499 Alright folks, I HAVE A FIX!!!! I repeat, I HAVE A FIX!!!!!!!!! Basically, this is what was wrong: the account_win_destroy_cb function was failing to destroy the window when the "window delete" event was happening. I reviewed the code, and it appears there are only 2 places where that function is called, and in BOTH cases, gtk_widget_destroy(dialog->window) was called before calling account_win_destroy_cb. That's ugly!!!! So, my patch rearranges things so gtk_widget_destroy is called at the beginning of account_win_destroy_cb. That way, it *DOES* destroy the window as it is supposed to, and it removes a couple unnecessary lines of code. Woohoo!!!!!!!!! I've tested it here on my own system, and it appears to work, but I'd appreciate it if someone else could verify my fix before it is checked in (should it be accepted). The fix is in Patch #837542 here on Sourceforge. :-) Yours Truly, Daniel (Yes, I am excited!!! I just fixed a problem in Gaim that has been bugging me for some time. I *HATE* instability... Call me the Segfault Avenger. ;-)) --------------------------------------------------------------- committer: Tailor Script diff -r 126fceb88bec -r 685736e14aac src/gtkaccount.c --- a/src/gtkaccount.c Thu Nov 06 20:40:49 2003 +0000 +++ b/src/gtkaccount.c Thu Nov 06 23:29:40 2003 +0000 @@ -929,6 +929,8 @@ account_win_destroy_cb(GtkWidget *w, GdkEvent *event, AccountPrefsDialog *dialog) { + gtk_widget_destroy(dialog->window); + if (dialog->user_split_entries != NULL) g_list_free(dialog->user_split_entries); @@ -947,8 +949,6 @@ static void cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog) { - gtk_widget_destroy(dialog->window); - account_win_destroy_cb(NULL, NULL, dialog); } @@ -1160,8 +1160,6 @@ } } - gtk_widget_destroy(dialog->window); - ret = dialog->account; account_win_destroy_cb(NULL, NULL, dialog);