Changeset 5629


Ignore:
Timestamp:
Jul 31, 2017, 2:03:42 PM (22 months ago)
Author:
jrpelegrina
Message:

Fix indicator script

Location:
lliurex-up/trunk/fuentes/lliurex-up-indicator/usr/bin
Files:
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-up/trunk/fuentes/lliurex-up-indicator/usr/bin/lliurex-up-indicator

    r5624 r5629  
    1919from aptdaemon import client
    2020
     21import syslog
     22import dbus
     23from dbus.mainloop.glib import DBusGMainLoop
     24
     25
    2126import pyinotify
    2227from pyinotify import WatchManager, Notifier, ThreadedNotifier, EventsCodes, ProcessEvent
     
    5762                self.isindicator_running()
    5863                self.createLockToken()
    59 
     64               
    6065                self.sp_cont=0
    6166                self.sp_img=0
     
    9297
    9398                GLib.timeout_add_seconds(5, self.worker)
     99
     100                self.launch_endsession()
    94101
    95102        #def __init__   
     
    465472
    466473        def launch_endsession(self):
    467                
    468                 os.system("/usr/bin/lliurex-up-indicator-endsession")   
     474
     475                syslog.syslog("iniciando")
     476                DBusGMainLoop(set_as_default=True)
     477                self.session_bus = dbus.SessionBus()
     478               
     479                # ###########################
     480                #CAPTURE END SESSION SIGNAL
     481                # ###########################
     482                proxy = self.session_bus.get_object('org.gnome.SessionManager','/org/gnome/SessionManager')
     483                proxy=dbus.Interface(proxy,"org.gnome.SessionManager")
     484
     485                d_id=os.getenv("DESKTOP_AUTOSTART_ID")
     486                if d_id==None:
     487                        d_id="lliurex-up-indicator"
     488
     489                print d_id
     490                self.client_id=proxy.RegisterClient("lliurex-up-indicator",d_id)
     491                print self.client_id
     492
     493                proxy = self.session_bus.get_object('org.gnome.SessionManager',self.client_id)
     494                print proxy
     495                proxy=dbus.Interface(proxy,"org.gnome.SessionManager.ClientPrivate")
     496                print proxy
     497                proxy.connect_to_signal("EndSession",self.on_end_session)
     498               
     499                proxy.connect_to_signal("QueryEndSession",self.on_query_end_session)
     500               
     501                #os.system("/usr/bin/lliurex-up-indicator-endsession &")
     502
     503        def on_query_end_session(self,sender):
     504               
     505               
     506                proxy = self.session_bus.get_object('org.gnome.SessionManager',self.client_id)
     507                proxy=dbus.Interface(proxy,"org.gnome.SessionManager.ClientPrivate")
     508                proxy.EndSessionResponse(True,"saving session.")
     509
     510        def on_end_session(self,sender):
     511               
     512                self.delete_lock()
     513                proxy = self.session_bus.get_object('org.gnome.SessionManager',self.client_id)
     514                proxy=dbus.Interface(proxy,"org.gnome.SessionManager.ClientPrivate")
     515                proxy.EndSessionResponse(True,"unregistering")
     516                self.quit()
     517
     518                       
     519        def delete_lock(self):
     520
     521                file=os.path.expanduser(LOCK_TOKEN)
     522                               
     523                if os.path.exists(file):
     524                        os.remove(file)         
    469525               
    470526
     
    481537
    482538        lliurexup=UpgradeIndicator("lliurex-up")
    483         lliurexup.launch_endsession()
     539        #lliurexup.launch_endsession()
    484540        GObject.threads_init()
    485541        Gtk.main()
Note: See TracChangeset for help on using the changeset viewer.