Mercurial > pidgin.yaz
annotate src/idle.c @ 5411:2c4188300aba
[gaim-migrate @ 5787]
This fixes an i18n thing, I think.
I changed some stuff in oscar.c to use _() instead of calling gettext
directly. That's ok, right? I like the macro better.
I also fixed a compile warning or two. If that function declaration
isn't supposed to be there, feel free to move it, or remove it, or
lemme know and I'll do it.
Viva 0.63!
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 17 May 2003 05:41:18 +0000 |
parents | 0241d6b6702d |
children | 80e4ba770f97 |
rev | line source |
---|---|
1026 | 1 /* |
2 * gaim | |
3 * | |
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
1 | 5 * |
1026 | 6 * This program is free software; you can redistribute it and/or modify |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; either version 2 of the License, or | |
9 * (at your option) any later version. | |
1 | 10 * |
1026 | 11 * This program is distributed in the hope that it will be useful, |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 * GNU General Public License for more details. | |
1 | 15 * |
1026 | 16 * You should have received a copy of the GNU General Public License |
17 * along with this program; if not, write to the Free Software | |
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
1 | 19 * |
20 */ | |
21 | |
22 #ifdef HAVE_CONFIG_H | |
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1952
diff
changeset
|
23 #include <config.h> |
1 | 24 #endif |
1026 | 25 #include <time.h> |
26 #include <stdio.h> | |
27 #include <unistd.h> | |
1 | 28 |
1026 | 29 #ifdef USE_SCREENSAVER |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
30 #ifndef _WIN32 |
1026 | 31 #include <X11/Xlib.h> |
32 #include <X11/Xutil.h> | |
33 #include <X11/extensions/scrnsaver.h> | |
2115
3ce77b547cf2
[gaim-migrate @ 2125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2114
diff
changeset
|
34 #include <gdk/gdkx.h> |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
35 #else |
4536
ba99d30afc14
[gaim-migrate @ 4815]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4201
diff
changeset
|
36 #include "idletrack.h" |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
37 #endif |
1026 | 38 #endif /* USE_SCREENSAVER */ |
1 | 39 |
4608 | 40 #include "gaim.h" |
1026 | 41 #include "multi.h" |
1401
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1367
diff
changeset
|
42 #include "prpl.h" |
1 | 43 |
4536
ba99d30afc14
[gaim-migrate @ 4815]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4201
diff
changeset
|
44 #define IDLEMARK 600 /* 10 minutes! */ |
1 | 45 |
2381
427ccd7dfdd2
[gaim-migrate @ 2394]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
46 gint check_idle(gpointer data) |
1 | 47 { |
2381
427ccd7dfdd2
[gaim-migrate @ 2394]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
48 struct gaim_connection *gc = data; |
1026 | 49 time_t t; |
50 #ifdef USE_SCREENSAVER | |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
51 #ifndef _WIN32 |
1026 | 52 static XScreenSaverInfo *mit_info = NULL; |
1062
9446ac58745e
[gaim-migrate @ 1072]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
53 #endif |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
54 #endif |
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
3905
diff
changeset
|
55 int idle_time; |
1 | 56 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
57 gaim_event_broadcast(event_blist_update); |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
58 |
1026 | 59 time(&t); |
1 | 60 |
61 | |
1026 | 62 #ifdef USE_SCREENSAVER |
63 if (report_idle == IDLE_SCREENSAVER) { | |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
64 #ifndef _WIN32 |
2115
3ce77b547cf2
[gaim-migrate @ 2125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2114
diff
changeset
|
65 int event_base, error_base; |
3ce77b547cf2
[gaim-migrate @ 2125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2114
diff
changeset
|
66 if (XScreenSaverQueryExtension(GDK_DISPLAY(), &event_base, &error_base)) { |
2114
c582116e8463
[gaim-migrate @ 2124]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
67 if (mit_info == NULL) { |
c582116e8463
[gaim-migrate @ 2124]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
68 mit_info = XScreenSaverAllocInfo(); |
c582116e8463
[gaim-migrate @ 2124]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
69 } |
2115
3ce77b547cf2
[gaim-migrate @ 2125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2114
diff
changeset
|
70 XScreenSaverQueryInfo(GDK_DISPLAY(), GDK_ROOT_WINDOW(), mit_info); |
2114
c582116e8463
[gaim-migrate @ 2124]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
71 idle_time = (mit_info->idle) / 1000; |
c582116e8463
[gaim-migrate @ 2124]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
72 } else |
c582116e8463
[gaim-migrate @ 2124]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
73 idle_time = 0; |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
74 #else |
4536
ba99d30afc14
[gaim-migrate @ 4815]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4201
diff
changeset
|
75 idle_time = (GetTickCount() - wgaim_get_lastactive()) / 1000; |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3517
diff
changeset
|
76 #endif |
1026 | 77 } else |
78 #endif /* USE_SCREENSAVER */ | |
79 idle_time = t - gc->lastsent; | |
1 | 80 |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
81 if ((away_options & OPT_AWAY_AUTO) && (idle_time > (60 * auto_away)) && (!gc->is_auto_away)) { |
1446
38f712e75836
[gaim-migrate @ 1456]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1407
diff
changeset
|
82 if (!gc->away) { |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
83 gaim_debug(GAIM_DEBUG_INFO, "idle", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
84 "Making %s away automatically\n", gc->username); |
1446
38f712e75836
[gaim-migrate @ 1456]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1407
diff
changeset
|
85 if (g_slist_length(connections) == 1) |
38f712e75836
[gaim-migrate @ 1456]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1407
diff
changeset
|
86 do_away_message(NULL, default_away); |
1895
e65b9942f649
[gaim-migrate @ 1905]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1885
diff
changeset
|
87 else if (default_away) |
1446
38f712e75836
[gaim-migrate @ 1456]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1407
diff
changeset
|
88 serv_set_away(gc, GAIM_AWAY_CUSTOM, default_away->message); |
1468
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
89 gc->is_auto_away = 1; |
1952
39df68320a82
[gaim-migrate @ 1962]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1895
diff
changeset
|
90 set_default_away(NULL, (gpointer)g_slist_index(away_messages, default_away)); |
1468
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
91 } else |
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
92 gc->is_auto_away = 2; |
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
93 } else if (gc->is_auto_away && idle_time < 60 * auto_away) { |
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
94 if (gc->is_auto_away == 2) { |
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
95 gc->is_auto_away = 0; |
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1575
diff
changeset
|
96 return TRUE; |
1446
38f712e75836
[gaim-migrate @ 1456]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1407
diff
changeset
|
97 } |
1468
9db35684c68c
[gaim-migrate @ 1478]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1450
diff
changeset
|
98 gc->is_auto_away = 0; |
1407
9f356885a77a
[gaim-migrate @ 1417]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1404
diff
changeset
|
99 if (awaymessage == NULL) { |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
100 gaim_debug(GAIM_DEBUG_INFO, "idle", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
101 "Removing auto-away message for %s\n", gc->username); |
1401
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1367
diff
changeset
|
102 serv_set_away(gc, GAIM_AWAY_CUSTOM, NULL); |
1407
9f356885a77a
[gaim-migrate @ 1417]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1404
diff
changeset
|
103 } else { |
1450
024f9250ba63
[gaim-migrate @ 1460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1446
diff
changeset
|
104 if (g_slist_length(connections) == 1) |
024f9250ba63
[gaim-migrate @ 1460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1446
diff
changeset
|
105 do_im_back(0, 0); |
024f9250ba63
[gaim-migrate @ 1460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1446
diff
changeset
|
106 else { |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
107 gaim_debug(GAIM_DEBUG_INFO, "idle", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
108 "Replacing auto-away with global for %s\n", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
109 gc->username); |
1450
024f9250ba63
[gaim-migrate @ 1460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1446
diff
changeset
|
110 serv_set_away(gc, GAIM_AWAY_CUSTOM, awaymessage->message); |
024f9250ba63
[gaim-migrate @ 1460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1446
diff
changeset
|
111 } |
1407
9f356885a77a
[gaim-migrate @ 1417]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1404
diff
changeset
|
112 } |
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
113 } |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
114 |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
115 |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
116 /* If we're not reporting idle times to the server, still use Gaim |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
117 usage for auto-away, but quit here so we don't report to the |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
118 server */ |
1367
ad346597b7b2
[gaim-migrate @ 1377]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1254
diff
changeset
|
119 if (report_idle == IDLE_NONE) { |
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
120 return TRUE; |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
121 } |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1062
diff
changeset
|
122 |
4547
1f19b66c5d84
[gaim-migrate @ 4826]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4536
diff
changeset
|
123 if (idle_time >= IDLEMARK && !gc->is_idle) { |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
124 gaim_debug(GAIM_DEBUG_INFO, "idle", "Setting %s idle %d seconds\n", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
125 gc->username, idle_time); |
1026 | 126 serv_set_idle(gc, idle_time); |
127 gc->is_idle = 1; | |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1468
diff
changeset
|
128 system_log(log_idle, gc, NULL, OPT_LOG_BUDDY_IDLE | OPT_LOG_MY_SIGNON); |
4536
ba99d30afc14
[gaim-migrate @ 4815]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4201
diff
changeset
|
129 } else if (idle_time < IDLEMARK && gc->is_idle) { |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
130 gaim_debug(GAIM_DEBUG_INFO, "idle", "Setting %s unidle\n", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
131 gc->username); |
1026 | 132 serv_touch_idle(gc); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1468
diff
changeset
|
133 system_log(log_unidle, gc, NULL, OPT_LOG_BUDDY_IDLE | OPT_LOG_MY_SIGNON); |
1029
740c6f933fe0
[gaim-migrate @ 1039]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1028
diff
changeset
|
134 } |
1 | 135 |
1026 | 136 return TRUE; |
1 | 137 |
138 } |