Mon, 11 Nov 2002 03:18:00 +0000
[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: Luke Schierer <lschiere@pidgin.im>
| 99 | 1 | #define GAIM_PLUGINS |
| 2 | #include "gaim.h" | |
|
1404
e915b372f70a
[gaim-migrate @ 1414]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1378
diff
changeset
|
3 | #include "prpl.h" |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
4 | |
| 3630 | 5 | #ifdef _WIN32 |
| 6 | #include "win32dep.h" | |
| 7 | #endif | |
| 8 | ||
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
9 | #define INITIAL 8000 |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
10 | #define MAXTIME 1024000 |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
11 | |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
12 | static GHashTable *hash = NULL; |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
13 | |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
14 | static guint tim = 0; |
| 99 | 15 | |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
16 | static gboolean do_signon(gpointer data) { |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
17 | struct aim_user *u = data; |
|
2398
abb1bcee4fdd
[gaim-migrate @ 2411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2217
diff
changeset
|
18 | if (g_slist_index(aim_users, u) < 0) |
|
1817
67ad2e2348a2
[gaim-migrate @ 1827]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1404
diff
changeset
|
19 | return FALSE; |
|
1378
49578635eddb
[gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1165
diff
changeset
|
20 | serv_login(u); |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
21 | tim = 0; |
|
1817
67ad2e2348a2
[gaim-migrate @ 1827]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1404
diff
changeset
|
22 | return FALSE; |
|
1378
49578635eddb
[gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1165
diff
changeset
|
23 | } |
|
49578635eddb
[gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1165
diff
changeset
|
24 | |
|
49578635eddb
[gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1165
diff
changeset
|
25 | static void reconnect(struct gaim_connection *gc, void *m) { |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
26 | if (!gc->wants_to_die) { |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
27 | int del; |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
28 | del = (int)g_hash_table_lookup(hash, gc->user); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
29 | if (!del) |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
30 | del = INITIAL; |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
31 | else |
|
2217
791f4d3b3565
[gaim-migrate @ 2227]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2216
diff
changeset
|
32 | del = MAX(2 * del, MAXTIME); |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
33 | tim = g_timeout_add(del, do_signon, gc->user); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
34 | g_hash_table_insert(hash, gc->user, (gpointer)del); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
35 | } else { |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
36 | g_hash_table_remove(hash, gc->user); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
37 | } |
| 99 | 38 | } |
| 39 | ||
| 3630 | 40 | /* |
| 41 | * EXPORTED FUNCTIONS | |
| 42 | */ | |
| 43 | ||
| 3802 | 44 | struct gaim_plugin_description desc; |
| 45 | G_MODULE_EXPORT struct gaim_plugin_description *gaim_plugin_desc() { | |
| 46 | desc.api_version = PLUGIN_API_VERSION; | |
| 47 | desc.name = g_strdup("Autoreconnect"); | |
| 48 | desc.version = g_strdup(VERSION); | |
| 49 | desc.description = g_strdup("When you are kicked offline, this reconnects you."); | |
| 50 | desc.authors = g_strdup("Eric Warmenhoven <eric@warmenhoven.org>"); | |
| 51 | desc.url = g_strdup(WEBSITE); | |
| 52 | return &desc; | |
| 53 | } | |
| 54 | ||
| 3630 | 55 | G_MODULE_EXPORT char *name() { |
| 56 | return "Auto Reconnect"; | |
| 57 | } | |
| 58 | ||
| 59 | G_MODULE_EXPORT char *description() { | |
| 60 | return "When you are kicked offline, this reconnects you."; | |
| 61 | } | |
| 62 | ||
| 63 | G_MODULE_EXPORT char *gaim_plugin_init(GModule *handle) { | |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
64 | hash = g_hash_table_new(g_int_hash, g_int_equal); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
65 | |
| 99 | 66 | gaim_signal_connect(handle, event_signoff, reconnect, NULL); |
|
1047
783f8520d9a0
[gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
67 | |
|
783f8520d9a0
[gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
68 | return NULL; |
| 99 | 69 | } |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
70 | |
| 3630 | 71 | G_MODULE_EXPORT void gaim_plugin_remove() { |
|
2216
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
72 | if (tim) |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
73 | g_source_remove(tim); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
74 | g_hash_table_destroy(hash); |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
75 | hash = NULL; |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
76 | tim = 0; |
|
ae70f10e0d27
[gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1818
diff
changeset
|
77 | } |