Fri, 30 Sep 2005 04:56:25 +0000
[gaim-migrate @ 13849]
Autodetect Howl and enable the Bonjour PRPL if the Howl libs and header
files are found.
This is my first real forray into configure.ac, so someone smart may
want to look through it.
| 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 | } |