From 5a920ca053056978a5835770a16479a65dd42d0e Mon Sep 17 00:00:00 2001 From: j Date: Mon, 18 Jan 2016 17:47:36 +0530 Subject: [PATCH] close gtk menuitem if pid is gone --- oml/gtkstatus.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/oml/gtkstatus.py b/oml/gtkstatus.py index 230da92..fa967bf 100644 --- a/oml/gtkstatus.py +++ b/oml/gtkstatus.py @@ -2,8 +2,8 @@ import os from os.path import dirname, abspath import subprocess +import time import webbrowser -import _thread import gi gi.require_version('Gtk', '3.0') @@ -39,13 +39,16 @@ class OMLIcon: self.icon.set_title(title) self.icon.connect("activate", self._click) self.icon.connect("popup-menu", self._click) - self._p = subprocess.Popen([ctl, 'start']) + subprocess.Popen([ctl, 'start']) GLib.timeout_add_seconds(1, self._open, None) - _thread.start_new_thread(self._wait, ()) + GLib.timeout_add_seconds(60, self._check, None) - def _wait(self): - self._p.wait() - self._quit(None) + def _check(self, *args, **kwargs): + pid = os.path.join(base, 'data', 'openmedialibrary.pid') + if os.path.exists(pid): + GLib.timeout_add_seconds(60, self._check, None) + else: + self._quit(None) def get_menu(self): menu = Gtk.Menu()