The branch, master has been updated via a737395d986559888c214c894cce07d614bab78a (commit) from d71817b8ec2e482fa41d2bd5fb5a6e5c5c7f66f5 (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 a737395d986559888c214c894cce07d614bab78a Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Oct 2 17:24:07 2012 +0200 For ,,maxdim'' session property fallback to _NET_DESKTOP_GEOMETRY if _NET_WORKAREA is not available from the window manager. ----------------------------------------------------------------------- Summary of changes: debian/changelog | 2 ++ x2go/backends/terminal/_stdout.py | 16 ++++++++++++++-- x2go/utils.py | 21 +++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) The diff of changes is: diff --git a/debian/changelog b/debian/changelog index 2f8b04c..9940594 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,8 @@ python-x2go (0.2.0.11-0~x2go1) UNRELEASED; urgency=low - Add support for starting maximized session windows. Closes upstream issue #12. - Fix category ,,Utility'' when parsing .desktop files. + - For ,,maxdim'' session property fallback to _NET_DESKTOP_GEOMETRY if + _NET_WORKAREA is not available from the window manager. * /debian/rules: + Allow package build on systems with missing dh_python2. diff --git a/x2go/backends/terminal/_stdout.py b/x2go/backends/terminal/_stdout.py index 8548cd0..4055f09 100644 --- a/x2go/backends/terminal/_stdout.py +++ b/x2go/backends/terminal/_stdout.py @@ -1375,7 +1375,13 @@ class X2goTerminalSessionSTDOUT(object): self.params.rewrite_session_type() if self.params.geometry == 'maximize': - self.params.geometry = "%sx%s" % utils.get_workarea_geometry() + _geometry = utils.get_workarea_geometry() + if len(_geometry) != 2: + _geometry = utils.get_desktop_geometry() + if len(_geometry) == 2: + self.params.geometry = "%sx%s" % _geometry + else: + self.logger('failed to detect best maxmimized geometry of your client-side desktop', loglevel=log.loglevel_WARN) cmd_line = [ "x2gostartagent", str(self.params.geometry), @@ -1462,7 +1468,13 @@ class X2goTerminalSessionSTDOUT(object): setkbd = "1" if self.params.geometry == 'maximize': - self.params.geometry = "%sx%s" % utils.get_workarea_geometry() + _geometry = utils.get_workarea_geometry() + if len(_geometry) != 2: + _geometry = utils.get_desktop_geometry() + if len(_geometry) == 2: + self.params.geometry = "%sx%s" % _geometry + else: + self.logger('failed to detect best maxmimized geometry of your client-side desktop', loglevel=log.loglevel_WARN) cmd_line = [ "x2goresume-session", self.session_info.name, self.params.geometry, diff --git a/x2go/utils.py b/x2go/utils.py index a6ee4e6..ff240dd 100644 --- a/x2go/utils.py +++ b/x2go/utils.py @@ -603,6 +603,27 @@ def find_session_window(session_name): return window +def get_desktop_geometry(): + """\ + Get the geometry of the current screen's desktop by + wrapping around + + xprop -root '_NET_DESKTOP_GEOMETRY' + + @return: a (<width>, <height>) tuple will be returned + @rtype: C{tuple} + + """ + if _X2GOCLIENT_OS != 'Windows': + p = subprocess.Popen(['xprop', '-root', '_NET_DESKTOP_GEOMETRY',], stdout=subprocess.PIPE, ) + _paramval = p.stdout.read().split("=") + if len(_paramval) == 2: + _list = _paramval[1].rstrip('\n').split(',') + if len(_list) == 2: + return (_list[0].strip(), _list[1].strip()) + + return None + def get_workarea_geometry(): """\ Get the geometry of the current screen's work area by hooks/post-receive -- python-x2go.git (Python X2Go Client API) 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 "python-x2go.git" (Python X2Go Client API).