Mercurial > pidgin
changeset 8814:c61be128dff3
[gaim-migrate @ 9576]
Gary Kramlich says this fixes bugs in code he wrote, so I don't need
to mention his name. I think he's just trying to pretend his code
didn't have bugs. I'm citing him anyway.
committer: Tailor Script <tailor@pidgin.im>
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Mon, 26 Apr 2004 15:46:12 +0000 |
parents | 610bf83cbd93 |
children | ada0cf2f49fe |
files | src/gtkprefs.c src/plugin.h |
diffstat | 2 files changed, 22 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gtkprefs.c Mon Apr 26 15:30:03 2004 +0000 +++ b/src/gtkprefs.c Mon Apr 26 15:46:12 2004 +0000 @@ -363,6 +363,11 @@ prefs_info = GAIM_PLUGIN_UI_INFO(plug); + if(prefs_info->frame != NULL) { + gaim_plugin_pref_frame_destroy(prefs_info->frame); + prefs_info->frame = NULL; + } + if(prefs_info->iter != NULL) { g_free(prefs_info->iter); prefs_info->iter = NULL; @@ -1856,7 +1861,8 @@ iter = plugin_iter; prefs_info = GAIM_PLUGIN_UI_INFO(plug); - pref_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->get_plugin_pref_frame(plug)); + prefs_info->frame = prefs_info->get_plugin_pref_frame(plug); + pref_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame); if(pref_frame != NULL) { prefs_info->iter = g_new0(GtkTreeIter, 1); @@ -1894,6 +1900,11 @@ prefs_info = GAIM_PLUGIN_UI_INFO(plug); if(prefs_info != NULL) { + if(prefs_info->frame != NULL) { + gaim_plugin_pref_frame_destroy(prefs_info->frame); + prefs_info->frame = NULL; + } + if(prefs_info->iter != NULL) { gtk_tree_store_remove(GTK_TREE_STORE(prefstree), prefs_info->iter); g_free(prefs_info->iter); @@ -2544,13 +2555,11 @@ if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) { GtkWidget *gtk_frame; - GaimPluginPrefFrame *pp_frame; GaimPluginUiInfo *prefs_info; prefs_info = GAIM_PLUGIN_UI_INFO(plug); - pp_frame = prefs_info->get_plugin_pref_frame(plug); - gtk_frame = gaim_gtk_plugin_pref_create_frame(pp_frame); - gaim_plugin_pref_frame_destroy(pp_frame); + prefs_info->frame = prefs_info->get_plugin_pref_frame(plug); + gtk_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame); if(GTK_IS_WIDGET(gtk_frame)) { prefs_info->iter = g_new0(GtkTreeIter, 1); @@ -2558,6 +2567,12 @@ gtk_frame, prefs_info->iter, (plug->info->type == GAIM_PLUGIN_PROTOCOL) ? &proto_iter : &plugin_iter, notebook_page++); + } else if(prefs_info->frame) { + /* in the event that there is a pref frame and we can + * not make a widget out of it, we free the + * pluginpref frame --Gary + */ + gaim_plugin_pref_frame_destroy(prefs_info->frame); } } }
--- a/src/plugin.h Mon Apr 26 15:30:03 2004 +0000 +++ b/src/plugin.h Mon Apr 26 15:46:12 2004 +0000 @@ -87,7 +87,7 @@ void *ui_info; void *extra_info; - void *prefs_info; + GaimPluginUiInfo *prefs_info; }; /** @@ -127,6 +127,7 @@ GaimPluginPrefFrame *(*get_plugin_pref_frame)(GaimPlugin *plugin); void *iter; /**< Reserved */ + GaimPluginPrefFrame *frame; /**< Reserved */ }; #define GAIM_PLUGIN_HAS_PREF_FRAME(plugin) \