Mercurial > pidgin.yaz
view plugins/autorecon.c @ 756:c5f455b6f79a
[gaim-migrate @ 766]
Fixed a small bug with text not always displaying when it should.
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Thu, 24 Aug 2000 17:55:04 +0000 |
parents | d96b511972fe |
children | 91b7377e7b45 |
line wrap: on
line source
#define GAIM_PLUGINS #include "gaim.h" #include <gtk/gtk.h> extern GtkWidget *imaway; static int recon; static int away_state; static int forced_off = 0; static struct away_message *last_away; char *name() { return "Auto Reconnect"; } char *description() { return "When AOL kicks you off, this auto-reconnects you."; } extern void dologin(GtkWidget *, GtkWidget *); void do_signon() { if (!blist) dologin(NULL, NULL); if (!USE_OSCAR) { if (blist) { gtk_timeout_remove(recon); forced_off = 0; if (away_state) do_away_message(NULL, last_away); return; } } else { gtk_timeout_remove(recon); forced_off = 0; if (blist && away_state) do_away_message(NULL, last_away); return; } } void reconnect(void *m) { recon = gtk_timeout_add(8000, (GtkFunction)do_signon, NULL); forced_off = 1; } void away_toggle(void *m) { if ((int)m == 1) { last_away = awaymessage; away_state = 1; } else if (!forced_off) away_state = 0; } void gaim_plugin_init(void *handle) { if (imaway) { away_state = 1; last_away = awaymessage; } else away_state = 0; gaim_signal_connect(handle, event_away, away_toggle, (void *)1); gaim_signal_connect(handle, event_back, away_toggle, (void *)0); gaim_signal_connect(handle, event_signoff, reconnect, NULL); }