Mercurial > pidgin
comparison src/gtkaccount.c @ 7450:685736e14aac
[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 <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Thu, 06 Nov 2003 23:29:40 +0000 |
parents | 4fc46299e5fb |
children | d70cfddd8164 |
comparison
equal
deleted
inserted
replaced
7449:126fceb88bec | 7450:685736e14aac |
---|---|
927 | 927 |
928 static void | 928 static void |
929 account_win_destroy_cb(GtkWidget *w, GdkEvent *event, | 929 account_win_destroy_cb(GtkWidget *w, GdkEvent *event, |
930 AccountPrefsDialog *dialog) | 930 AccountPrefsDialog *dialog) |
931 { | 931 { |
932 gtk_widget_destroy(dialog->window); | |
933 | |
932 if (dialog->user_split_entries != NULL) | 934 if (dialog->user_split_entries != NULL) |
933 g_list_free(dialog->user_split_entries); | 935 g_list_free(dialog->user_split_entries); |
934 | 936 |
935 if (dialog->protocol_opt_entries != NULL) | 937 if (dialog->protocol_opt_entries != NULL) |
936 g_list_free(dialog->protocol_opt_entries); | 938 g_list_free(dialog->protocol_opt_entries); |
945 } | 947 } |
946 | 948 |
947 static void | 949 static void |
948 cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog) | 950 cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog) |
949 { | 951 { |
950 gtk_widget_destroy(dialog->window); | |
951 | |
952 account_win_destroy_cb(NULL, NULL, dialog); | 952 account_win_destroy_cb(NULL, NULL, dialog); |
953 } | 953 } |
954 | 954 |
955 static GaimAccount* | 955 static GaimAccount* |
956 ok_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog) | 956 ok_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog) |
1157 else { | 1157 else { |
1158 add_account(accounts_window, dialog->account); | 1158 add_account(accounts_window, dialog->account); |
1159 gaim_accounts_add(dialog->account); | 1159 gaim_accounts_add(dialog->account); |
1160 } | 1160 } |
1161 } | 1161 } |
1162 | |
1163 gtk_widget_destroy(dialog->window); | |
1164 | 1162 |
1165 ret = dialog->account; | 1163 ret = dialog->account; |
1166 | 1164 |
1167 account_win_destroy_cb(NULL, NULL, dialog); | 1165 account_win_destroy_cb(NULL, NULL, dialog); |
1168 | 1166 |