Changeset 8476

Show
Ignore:
Timestamp:
08/09/07 14:18:59 (17 months ago)
Author:
asterix
Message:

handle gnome-screensaver events. fixes #663

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/gajim.py

    r8475 r8476  
    121121from common.zeroconf import connection_zeroconf 
    122122from common import dbus_support 
     123if dbus_support.supported: 
     124        import dbus 
    123125 
    124126if os.name == 'posix': # dl module is Unix Only 
     
    24322434                                print >> sys.stderr, _('Network Manager support not available') 
    24332435 
     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 
    24342461                self.show_vcard_when_connect = [] 
    24352462