From 1c7c5d79ff4ad808c77af8a6e6fffe20021ca2e5 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Sun, 23 Aug 2020 22:48:42 +0200 Subject: Do not queue settings dialogs if one is already shown --- ayatanawebmail/common.py | 6 +++--- 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) -- cgit v1.2.3