diff options
author | Robert Tari <robert@tari.in> | 2020-08-23 22:48:42 +0200 |
---|---|---|
committer | Robert Tari <robert@tari.in> | 2020-08-23 22:48:42 +0200 |
commit | 1c7c5d79ff4ad808c77af8a6e6fffe20021ca2e5 (patch) | |
tree | e1241e5f003968c86c540161f2bd26aa12fe1792 | |
parent | 132289091c29a7385c58fab7b04b8c21e45c1797 (diff) | |
download | ayatana-webmail-1c7c5d79ff4ad808c77af8a6e6fffe20021ca2e5.tar.gz ayatana-webmail-1c7c5d79ff4ad808c77af8a6e6fffe20021ca2e5.tar.bz2 ayatana-webmail-1c7c5d79ff4ad808c77af8a6e6fffe20021ca2e5.zip |
Do not queue settings dialogs if one is already shown
-rwxr-xr-x | ayatanawebmail/common.py | 6 | ||||
-rwxr-xr-x | data/usr/bin/ayatana-webmail-settings | 32 |
2 files changed, 20 insertions, 18 deletions
diff --git a/ayatanawebmail/common.py b/ayatanawebmail/common.py index 47a17e2..905ae74 100755 --- a/ayatanawebmail/common.py +++ b/ayatanawebmail/common.py @@ -39,7 +39,7 @@ def getDataPath(strPath): return strPath -def isRunning(): +def isRunning(sAppend = ''): nCount = 0 @@ -60,10 +60,10 @@ def isRunning(): for strCmd in lstCmdline: - if strCmd.endswith('ayatana-webmail'): + if strCmd.endswith('ayatana-webmail' + sAppend): nCount += 1 - elif strName.endswith('ayatana-webmail'): + elif strName.endswith('ayatana-webmail' + sAppend): nCount += 1 diff --git a/data/usr/bin/ayatana-webmail-settings b/data/usr/bin/ayatana-webmail-settings index 3eb3608..f000a9e 100755 --- a/data/usr/bin/ayatana-webmail-settings +++ b/data/usr/bin/ayatana-webmail-settings @@ -15,30 +15,32 @@ oLoop = None if __name__ == '__main__': - DBusGMainLoop(set_as_default=True) - oSessionBus = dbus.SessionBus() + if isRunning('-settings') == 1: - if isRunning(): + DBusGMainLoop(set_as_default=True) + oSessionBus = dbus.SessionBus() - try: + if isRunning(): - oSession = oSessionBus.get_object('org.ayatana.webmail', '/org/ayatana/webmail') - oInterface = dbus.Interface(oSession, 'org.ayatana.webmail') + try: - oInterface.settings(reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit()) + oSession = oSessionBus.get_object('org.ayatana.webmail', '/org/ayatana/webmail') + oInterface = dbus.Interface(oSession, 'org.ayatana.webmail') - oLoop = GLib.MainLoop() - oLoop.run() + oInterface.settings(reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit()) - except dbus.DBusException as oDBusException: + oLoop = GLib.MainLoop() + oLoop.run() - print(oDBusException) - sys.exit(1) + except dbus.DBusException as oDBusException: - sys.exit(0) + print(oDBusException) + sys.exit(1) - else: + sys.exit(0) - subprocess.Popen(['ayatana-webmail'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + else: + + subprocess.Popen(['ayatana-webmail'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) sys.exit(1) |