Fri, 11 Feb 2005 06:10:12 +0000
[gaim-migrate @ 11995]
s/gtk_toggle_sensitive_array/gaim_gtk_toggle_sensitive_array/ it's not really a gtk function (and it was annoying me).
Does this need Changelog.API:ing?
| 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; |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
117 | const char *report_idle; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
118 | GaimAccount *account; |
| 1026 | 119 | time_t t; |
|
4201
547da94c5a14
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
3905
diff
changeset
|
120 | int idle_time; |
| 1 | 121 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
122 | account = gaim_connection_get_account(gc); |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
123 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
124 | gaim_signal_emit(gaim_blist_get_handle(), "update-idle"); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1141
diff
changeset
|
125 | |
| 1026 | 126 | time(&t); |
| 1 | 127 | |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
128 | report_idle = gaim_prefs_get_string("/gaim/gtk/idle/reporting_method"); |
| 1 | 129 | |
| 1026 | 130 | #ifdef USE_SCREENSAVER |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
131 | if (report_idle != NULL && !strcmp(report_idle, "system")) |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
132 | idle_time = get_idle_time_from_system(); |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
133 | else |
| 1026 | 134 | #endif /* USE_SCREENSAVER */ |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
135 | idle_time = t - gc->last_sent_time; |
| 1 | 136 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
137 | /* Should be become auto-away? */ |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
138 | if (gaim_prefs_get_bool("/core/away/away_when_idle") && |
| 5748 | 139 | (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
|
140 | && (!gc->is_auto_away)) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
141 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
142 | GaimPresence *presence; |
|
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 | presence = gaim_account_get_presence(account); |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
145 | |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
146 | if (gaim_presence_is_available(presence)) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
147 | { |
| 6216 | 148 | const char *default_name; |
| 149 | ||
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
150 | gaim_debug_info("idle", "Making %s auto-away\n", |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
151 | gaim_account_get_username(account)); |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
152 | |
| 6216 | 153 | default_name = gaim_prefs_get_string("/core/away/default_message"); |
| 154 | ||
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
155 | /* XXX STATUS AWAY CORE/UI */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
156 | /* Need to set the default_name away message for this connection here */ |
| 6216 | 157 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
158 | gc->is_auto_away = GAIM_IDLE_AUTO_AWAY; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
159 | } else { |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
160 | gc->is_auto_away = GAIM_IDLE_AWAY_BUT_NOT_AUTO_AWAY; |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
161 | } |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9791
diff
changeset
|
162 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
163 | /* Should we return from being auto-away? */ |
| 5748 | 164 | } else if (gc->is_auto_away && |
| 165 | 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
|
166 | 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
|
167 | gc->is_auto_away = GAIM_IDLE_NOT_AWAY; |
|
1815
e2b090284b19
[gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1575
diff
changeset
|
168 | return TRUE; |
|
1446
3948b2c7fb6a
[gaim-migrate @ 1456]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1407
diff
changeset
|
169 | } |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
170 | gc->is_auto_away = GAIM_IDLE_NOT_AWAY; |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9791
diff
changeset
|
171 | |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
172 | /* XXX STATUS AWAY CORE/UI */ |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
173 | /* Need to set this connection to available here */ |
| 1109 | 174 | } |
| 175 | ||
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
176 | /* |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
177 | * If we're not reporting idle times to the server, still use Gaim |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
178 | * usage for auto-away, but quit here so we don't report to the |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
179 | * server. |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
180 | * |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
181 | * Hmm. What if _while_ we're idle we toggle the pref for reporting |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
182 | * idle time to the server? We would never become unidle... |
|
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
183 | */ |
| 5755 | 184 | if (report_idle != NULL && !strcmp(report_idle, "none")) |
| 1109 | 185 | return TRUE; |
| 186 | ||
|
4547
6111945dc464
[gaim-migrate @ 4826]
Herman Bloggs <herman@bluedigits.com>
parents:
4536
diff
changeset
|
187 | if (idle_time >= IDLEMARK && !gc->is_idle) { |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
188 | gaim_debug_info("idle", "Setting %s idle %d seconds\n", |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
189 | gaim_account_get_username(account), idle_time); |
| 1026 | 190 | serv_set_idle(gc, idle_time); |
| 191 | gc->is_idle = 1; | |
|
7475
987384816492
[gaim-migrate @ 8088]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
192 | /* LOG system_log(log_idle, gc, NULL, OPT_LOG_BUDDY_IDLE | OPT_LOG_MY_SIGNON); */ |
|
4536
76c632fee2bc
[gaim-migrate @ 4815]
Herman Bloggs <herman@bluedigits.com>
parents:
4201
diff
changeset
|
193 | } else if (idle_time < IDLEMARK && gc->is_idle) { |
|
10319
e45260cc6aa6
[gaim-migrate @ 11526]
Mark Doliner <markdoliner@pidgin.im>
parents:
9993
diff
changeset
|
194 | gaim_debug_info("idle", "Setting %s unidle\n", |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
195 | gaim_account_get_username(account)); |
| 1026 | 196 | serv_touch_idle(gc); |
|
7475
987384816492
[gaim-migrate @ 8088]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
197 | /* 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
|
198 | } |
| 1 | 199 | |
| 1026 | 200 | return TRUE; |
| 1 | 201 | } |