[X2go-Commits] pyhoca-gui.git - master (branch) updated: 0.1.0.10-132-g05e3a08

X2Go dev team git-admin at x2go.org
Thu Mar 22 18:04:03 CET 2012


The branch, master has been updated
       via  05e3a08419451b405d1a8b1d6e676df554b8c1c0 (commit)
      from  f5950620dc1520bb5ea57f61e13bfe82715ec7a2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 05e3a08419451b405d1a8b1d6e676df554b8c1c0
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Thu Mar 22 18:03:48 2012 +0100

    Provide a separate SetExitHandler function to catch signals from outside.

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog         |    1 +
 pyhoca/wxgui/frontend.py |   25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index f9c6b0a..76d75af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -82,6 +82,7 @@ pyhoca-gui (0.1.2.0-0~x2go1) UNRELEASED; urgency=low
     - Add connect and exit menu items if in single-session-profile mode.
     - Properly catch CTRL-C and SIGTERM signals.
     - Make sure application really exits gracefully.
+    - Provide a separate SetExitHandler function to catch signals from outside.
   * Depend on Python X2Go 0.1.2.0.
   * Install GNOME icons via dh_links.
   * Install X2Go icons with explicit install paths.
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index f74a58a..4ec9ef0 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -69,6 +69,26 @@ import sessiontitle
 wx.SetDefaultPyEncoding("utf-8")
 wx.InitAllImageHandlers()
 
+def SetExitHandler(func):
+
+    if os.name == 'nt' :
+        try :
+            import win32api
+            result = win32api.SetConsoleCtrlHandler( func, True )
+            if result == 0:
+                print '\nCould not SetConsoleCtrlHandler (error %r)' % win32api.GetLastError()
+            else :
+                print '\nSetConsoleCtrlHandler SUCCESS'
+
+        except ImportError :
+            version = '.'.join( map( str, sys.version_info[ :2] ) )
+            raise Exception( 'PyWin32 (win32api) is not installed.' )
+
+    else :
+        import signal
+        signal.signal( signal.SIGTERM, func )
+
+
 class PyHocaGUI(wx.App, x2go.X2goClient):
 
     def __init__(self, args, logger, liblogger, 
@@ -155,12 +175,16 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
 
         x2go.X2goClient.__init__(self, **_x2goclient_kwargs)
 
+        SetExitHandler(self._exit_handler)
         wx.App.__init__(self, redirect=False, clearSigInt=False)
         if not self.args.disable_splash:
             splash.PyHocaGUI_SplashScreen()
 
         self.Bind(wx.EVT_IDLE, self.OnIdle)
 
+    def _exit_handler(self):
+        WakeUpIdle()
+        ExitMainLoop()
 
     def OnInit(self):
         """\
@@ -998,3 +1022,4 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             evt = wx.IdleEvent()
             evt.SetId(_dummy_id)
             self.OnServerDisconnect(evt)
+


hooks/post-receive
-- 
pyhoca-gui.git (Python X2Go Client (wxPython GUI))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).




More information about the x2go-commits mailing list