Mercurial > pidgin.yaz
view plugins/iconaway.c @ 4571:51e988d015ed
[gaim-migrate @ 4852]
I don't know if this is gtk's problem or my (our?) misunderstanding of
GtkNotebook, but it seems pages that are deleted aren't destroying the
child widgets, so we're doing that manually now. It should free up a LOT
of memory, and since this is how the old code did it (I think), it should
explain the large memory leaks people used to report.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Tue, 11 Feb 2003 17:26:16 +0000 |
parents | 62c1e5e656d0 |
children | 2427d847e39c |
line wrap: on
line source
#include "config.h" #ifndef GAIM_PLUGINS #define GAIM_PLUGINS #endif #include "gaim.h" #include <gtk/gtk.h> #ifdef _WIN32 #include "win32dep.h" #endif void *handle; G_MODULE_IMPORT GtkWidget *imaway; G_MODULE_IMPORT GtkWidget *blist; /* XXX G_MODULE_IMPORT GtkWidget *all_chats; */ G_MODULE_IMPORT GtkWidget *all_convos; #ifdef USE_APPLET extern void applet_destroy_buddy(); #endif void iconify_windows(struct gaim_connection *gc, char *state, char *message, void *data) { struct gaim_window *win; GList *windows; if (!imaway || !gc->away) return; gtk_window_iconify(GTK_WINDOW(imaway)); hide_buddy_list(); for (windows = gaim_get_windows(); windows != NULL; windows = windows->next) { win = (struct gaim_window *)windows->data; if (GAIM_IS_GTK_WINDOW(win)) { struct gaim_gtk_window *gtkwin; gtkwin = GAIM_GTK_WINDOW(win); gtk_window_iconify(GTK_WINDOW(gtkwin->window)); } } } /* * EXPORTED FUNCTIONS */ G_MODULE_EXPORT char *gaim_plugin_init(GModule *h) { handle = h; gaim_signal_connect(handle, event_away, iconify_windows, NULL); return NULL; } struct gaim_plugin_description desc; G_MODULE_EXPORT struct gaim_plugin_description *gaim_plugin_desc() { desc.api_version = PLUGIN_API_VERSION; desc.name = g_strdup(_("Iconify on away")); desc.version = g_strdup(VERSION); desc.description = g_strdup(_("Iconifies the away box and the buddy list when you go away.")); desc.authors = g_strdup("Eric Warmenhoven <eric@warmenhoven.org>"); desc.url = g_strdup(WEBSITE); return &desc; } G_MODULE_EXPORT char *name() { return _("Iconify On Away"); } G_MODULE_EXPORT char *description() { return _("Iconifies the away box and the buddy list when you go away."); }