Mon, 12 Sep 2005 13:25:41 +0000
[gaim-migrate @ 13773]
Here's the rest of that custom smiley receiving patch, with some changes
from me. I'm still not all that happy with it, but that's probably not
the author's fault, and I don't have time to take it further right now.
committer: Tim Ringenbach <marv@pidgin.im>
| 1026 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 8046 | 4 | * Gaim is the legal property of its developers, whose names are too numerous |
| 5 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 6 | * source distribution. | |
| 1 | 7 | * |
| 1026 | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License as published by | |
| 10 | * the Free Software Foundation; either version 2 of the License, or | |
| 11 | * (at your option) any later version. | |
| 1 | 12 | * |
| 1026 | 13 | * This program is distributed in the hope that it will be useful, |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 16 | * GNU General Public License for more details. | |
| 1 | 17 | * |
| 1026 | 18 | * You should have received a copy of the GNU General Public License |
| 19 | * along with this program; if not, write to the Free Software | |
| 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 1 | 21 | * |
| 22 | */ | |
| 9791 | 23 | #include "internal.h" |
| 1 | 24 | |
| 1026 | 25 | #ifdef USE_SCREENSAVER |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
26 | # ifndef _WIN32 |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
27 | # include <X11/Xlib.h> |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
28 | # include <X11/Xutil.h> |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
29 | # include <X11/extensions/scrnsaver.h> |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
30 | # include <gdk/gdkx.h> |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
31 | # else |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
32 | # include "idletrack.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
33 | # endif |
| 1026 | 34 | #endif /* USE_SCREENSAVER */ |
| 1 | 35 | |
|
5615
2eb715cbbd9b
[gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
36 | #include "connection.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
37 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
38 | #include "log.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
39 | #include "prefs.h" |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
40 | #include "signals.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5755
diff
changeset
|
41 | |
|
4536
76c632fee2bc
[gaim-migrate @ 4815]
Herman Bloggs <herman@bluedigits.com>
parents:
4201
diff
changeset
|
42 | #define IDLEMARK 600 /* 10 minutes! */ |
| 1 | 43 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
44 | typedef enum |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
45 | { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
46 | GAIM_IDLE_NOT_AWAY = 0, |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
47 | GAIM_IDLE_AUTO_AWAY, |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
48 | GAIM_IDLE_AWAY_BUT_NOT_AUTO_AWAY |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
49 | |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
50 | } GaimAutoAwayState; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
51 | |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
52 | #ifdef USE_SCREENSAVER |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
53 | /** |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
54 | * Get the number of seconds the user has been idle. In Unix-world |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
55 | * this is based on the X Windows usage. In MS Windows this is based |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
56 | * on keyboard/mouse usage. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
57 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
58 | * In Debian bug #271639, jwz says: |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
59 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
60 | * Gaim should simply ask xscreensaver how long the user has been idle: |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
61 | * % xscreensaver-command -time |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
62 | * XScreenSaver 4.18: screen blanked since Tue Sep 14 14:10:45 2004 |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
63 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
64 | * Or you can monitor the _SCREENSAVER_STATUS property on root window #0. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
65 | * Element 0 is the status (0, BLANK, LOCK), element 1 is the time_t since |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
66 | * the last state change, and subsequent elements are which hack is running |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
67 | * on the various screens: |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
68 | * % xprop -f _SCREENSAVER_STATUS 32ac -root _SCREENSAVER_STATUS |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
69 | * _SCREENSAVER_STATUS(INTEGER) = BLANK, 1095196626, 10, 237 |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
70 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
71 | * See watch() in xscreensaver/driver/xscreensaver-command.c. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
72 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
73 | * @return The number of seconds the user has been idle. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
74 | */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
75 | static int |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
76 | get_idle_time_from_system() |
| 1 | 77 | { |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
78 | #ifndef _WIN32 |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
79 | static XScreenSaverInfo *mit_info = NULL; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
80 | int event_base, error_base; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
81 | if (XScreenSaverQueryExtension(GDK_DISPLAY(), &event_base, &error_base)) { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
82 | if (mit_info == NULL) { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
83 | mit_info = XScreenSaverAllocInfo(); |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
84 | } |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
85 | XScreenSaverQueryInfo(GDK_DISPLAY(), GDK_ROOT_WINDOW(), mit_info); |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
86 | return (mit_info->idle) / 1000; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
87 | } else |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
88 | return 0; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
89 | #else |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
90 | return (GetTickCount() - wgaim_get_lastactive()) / 1000; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
91 | #endif |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
92 | } |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
93 | #endif /* USE_SCREENSAVER */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
94 | |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
95 | /* |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
96 | * This function should be called when you think your idle state |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
97 | * may have changed. Maybe you're over the 10-minute mark and |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
98 | * Gaim should start reporting idle time to the server. Maybe |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
99 | * you've returned from being idle. Maybe your auto-away message |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
100 | * should be set. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
101 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
102 | * There is no harm to calling this many many times, other than |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
103 | * it will be kinda slow. This is called every 20 seconds by a |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
104 | * timer set when an account logs in. It is also called when |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
105 | * you send an IM, a chat, etc. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
106 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
107 | * This function has 3 sections. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
108 | * 1. Get your idle time. It will query XScreenSaver or Windows |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
109 | * or get the Gaim idle time. Whatever. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
110 | * 2. Set or unset your auto-away message. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
111 | * 3. Report your current idle time to the IM server. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
112 | */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
113 | gint |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
114 | check_idle(gpointer data) |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
115 | { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
116 | GaimConnection *gc = data; |
|
11287
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
117 | gboolean report_idle; |
|
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
118 | const char *idle_method; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
119 | GaimAccount *account; |
| 1026 | 120 | time_t t; |
|
4201
547da94c5a14
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
3905
diff
changeset
|
121 | int idle_time; |
| 1 | 122 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
123 | account = gaim_connection_get_account(gc); |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
124 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
125 | gaim_signal_emit(gaim_blist_get_handle(), "update-idle"); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1141
diff
changeset
|
126 | |
| 1026 | 127 | time(&t); |
| 1 | 128 | |
|
11287
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
129 | idle_method = gaim_prefs_get_string("/gaim/gtk/idle/method"); |
|
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
130 | report_idle = gaim_prefs_get_bool("/gaim/gtk/idle/report"); |
| 1 | 131 | |
| 1026 | 132 | #ifdef USE_SCREENSAVER |
|
11287
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
133 | if (idle_method != NULL && !strcmp(idle_method, "system")) |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
134 | idle_time = get_idle_time_from_system(); |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
135 | else |
| 1026 | 136 | #endif /* USE_SCREENSAVER */ |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
137 | idle_time = t - gc->last_sent_time; |
| 1 | 138 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
139 | /* Should be become auto-away? */ |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
140 | if (gaim_prefs_get_bool("/core/away/away_when_idle") && |
| 5748 | 141 | (idle_time > (60 * gaim_prefs_get_int("/core/away/mins_before_away"))) |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
142 | && (!gc->is_auto_away)) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
143 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
144 | GaimPresence *presence; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
145 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
146 | presence = gaim_account_get_presence(account); |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
147 | |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
148 | if (gaim_presence_is_available(presence)) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
149 | { |
| 6216 | 150 | const char *default_name; |
| 151 | ||
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
152 | gaim_debug_info("idle", "Making %s auto-away\n", |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
153 | gaim_account_get_username(account)); |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
154 | |
| 6216 | 155 | default_name = gaim_prefs_get_string("/core/away/default_message"); |
| 156 | ||
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
157 | /* XXX STATUS AWAY CORE/UI */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
158 | /* Need to set the default_name away message for this connection here */ |
| 6216 | 159 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
160 | gc->is_auto_away = GAIM_IDLE_AUTO_AWAY; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
161 | } else { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
162 | gc->is_auto_away = GAIM_IDLE_AWAY_BUT_NOT_AUTO_AWAY; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
163 | } |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9791
diff
changeset
|
164 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
165 | /* Should we return from being auto-away? */ |
| 5748 | 166 | } else if (gc->is_auto_away && |
| 167 | idle_time < 60 * gaim_prefs_get_int("/core/away/mins_before_away")) { | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
168 | if (gc->is_auto_away == GAIM_IDLE_AWAY_BUT_NOT_AUTO_AWAY) { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
169 | gc->is_auto_away = GAIM_IDLE_NOT_AWAY; |
|
1815
e2b090284b19
[gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
170 | return TRUE; |
|
1446
3948b2c7fb6a
[gaim-migrate @ 1456]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1407
diff
changeset
|
171 | } |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
172 | gc->is_auto_away = GAIM_IDLE_NOT_AWAY; |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9791
diff
changeset
|
173 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
174 | /* XXX STATUS AWAY CORE/UI */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
175 | /* Need to set this connection to available here */ |
| 1109 | 176 | } |
| 177 | ||
|
11287
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
178 | /* Deal with reporting idleness to the server, if appropriate */ |
|
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
179 | if (report_idle && idle_time >= IDLEMARK && !gc->is_idle) { |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
180 | gaim_debug_info("idle", "Setting %s idle %d seconds\n", |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
181 | gaim_account_get_username(account), idle_time); |
| 1026 | 182 | serv_set_idle(gc, idle_time); |
| 183 | gc->is_idle = 1; | |
|
7475
987384816492
[gaim-migrate @ 8088]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
184 | /* LOG system_log(log_idle, gc, NULL, OPT_LOG_BUDDY_IDLE | OPT_LOG_MY_SIGNON); */ |
|
11287
87bec7c61fed
[gaim-migrate @ 13484]
Daniel Atallah <datallah@pidgin.im>
parents:
10423
diff
changeset
|
185 | } else if ((!report_idle || idle_time < IDLEMARK) && gc->is_idle) { |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
186 | gaim_debug_info("idle", "Setting %s unidle\n", |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
187 | gaim_account_get_username(account)); |
| 1026 | 188 | serv_touch_idle(gc); |
|
7475
987384816492
[gaim-migrate @ 8088]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
189 | /* LOG system_log(log_unidle, gc, NULL, OPT_LOG_BUDDY_IDLE | OPT_LOG_MY_SIGNON); */ |
|
1029
c5ea048dc7ac
[gaim-migrate @ 1039]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1028
diff
changeset
|
190 | } |
| 1 | 191 | |
| 1026 | 192 | return TRUE; |
| 1 | 193 | } |