| | 2436 | # Handle gnome screensaver |
| | 2437 | if dbus_support.supported: |
| | 2438 | def gnome_screensaver_ActiveChanged_cb(active): |
| | 2439 | if not active: |
| | 2440 | return |
| | 2441 | for account in gajim.connections: |
| | 2442 | if not gajim.sleeper_state.has_key(account) or \ |
| | 2443 | not gajim.sleeper_state[account]: |
| | 2444 | continue |
| | 2445 | if gajim.sleeper_state[account] == 'online': |
| | 2446 | # we save out online status |
| | 2447 | gajim.status_before_autoaway[account] = \ |
| | 2448 | gajim.connections[account].status |
| | 2449 | # we go away (no auto status) [we pass True to auto param] |
| | 2450 | auto_message = gajim.config.get('autoaway_message') |
| | 2451 | if not auto_message: |
| | 2452 | auto_message = gajim.connections[account].status |
| | 2453 | self.roster.send_status(account, 'away', auto_message, |
| | 2454 | auto=True) |
| | 2455 | gajim.sleeper_state[account] = 'autoaway' |
| | 2456 | |
| | 2457 | bus = dbus.SessionBus() |
| | 2458 | bus.add_signal_receiver(gnome_screensaver_ActiveChanged_cb, |
| | 2459 | 'ActiveChanged', 'org.gnome.ScreenSaver') |
| | 2460 | |