Mercurial > pidgin
view plugins/autorecon.c @ 3939:49d42b275a68
[gaim-migrate @ 4115]
.todo file spelling fixes.
(22:11:39) Robot101: Fixes bug with multiple consecutive docklet clicks not
correctly showing and hiding the blist
(22:12:26) Robot101: Fixes compile warning in docklet.c the correct way
(without adding a default to the switch on an enum)
(22:12:53) Robot101: Avoids the blist being moved off-screen by the position
remembering code, and does the move before showing it instead of after
(22:13:50) Robot101: Fix evil behaviour with disappearing blists when you
switch desktop or minimise by removing the silly code
(22:14:24) Robot101: Replace it with nice code that raises the blist when you
click the docklet if it's fully obscured
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Mon, 11 Nov 2002 03:18:00 +0000 |
parents | 9bcb42faccc0 |
children | 74d27aa5b686 |
line wrap: on
line source
#define GAIM_PLUGINS #include "gaim.h" #include "prpl.h" #ifdef _WIN32 #include "win32dep.h" #endif #define INITIAL 8000 #define MAXTIME 1024000 static GHashTable *hash = NULL; static guint tim = 0; static gboolean do_signon(gpointer data) { struct aim_user *u = data; if (g_slist_index(aim_users, u) < 0) return FALSE; serv_login(u); tim = 0; return FALSE; } static void reconnect(struct gaim_connection *gc, void *m) { if (!gc->wants_to_die) { int del; del = (int)g_hash_table_lookup(hash, gc->user); if (!del) del = INITIAL; else del = MAX(2 * del, MAXTIME); tim = g_timeout_add(del, do_signon, gc->user); g_hash_table_insert(hash, gc->user, (gpointer)del); } else { g_hash_table_remove(hash, gc->user); } } /* * EXPORTED FUNCTIONS */ 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("Autoreconnect"); desc.version = g_strdup(VERSION); desc.description = g_strdup("When you are kicked offline, this reconnects you."); desc.authors = g_strdup("Eric Warmenhoven <eric@warmenhoven.org>"); desc.url = g_strdup(WEBSITE); return &desc; } G_MODULE_EXPORT char *name() { return "Auto Reconnect"; } G_MODULE_EXPORT char *description() { return "When you are kicked offline, this reconnects you."; } G_MODULE_EXPORT char *gaim_plugin_init(GModule *handle) { hash = g_hash_table_new(g_int_hash, g_int_equal); gaim_signal_connect(handle, event_signoff, reconnect, NULL); return NULL; } G_MODULE_EXPORT void gaim_plugin_remove() { if (tim) g_source_remove(tim); g_hash_table_destroy(hash); hash = NULL; tim = 0; }