Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-03-23 16:04:35 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-03-23 16:04:35 +0300
commit72fe34efb2a9787598fe10c3aefae3f523bd036f (patch)
treee25129c59bb491ca80e5308207bb8d05c42ed6ed /release
parentf87b37b3ef679dad8f492e223f20fecc7e9fa5da (diff)
tweaks not to load webbrowser or math modules on startup.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/startup/bl_operators/uvcalc_lightmap.py4
-rw-r--r--release/scripts/startup/bl_operators/wm.py64
2 files changed, 66 insertions, 2 deletions
diff --git a/release/scripts/startup/bl_operators/uvcalc_lightmap.py b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
index fedc8b15161..3893612437a 100644
--- a/release/scripts/startup/bl_operators/uvcalc_lightmap.py
+++ b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
@@ -21,8 +21,6 @@
import bpy
import mathutils
-from math import sqrt, pi
-
class prettyface(object):
__slots__ = "uv", "width", "height", "children", "xoff", "yoff", "has_parent", "rot"
@@ -104,6 +102,7 @@ class prettyface(object):
pf.spin()
def place(self, xoff, yoff, xfac, yfac, margin_w, margin_h):
+ from math import pi
xoff += self.xoff
yoff += self.yoff
@@ -196,6 +195,7 @@ def lightmap_uvpack(meshes,
and a higher value will have more clumpy boxes but more waisted space
'''
import time
+ from math import sqrt
if not meshes:
return
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 0563cd409ca..5d222168046 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -552,6 +552,7 @@ class WM_OT_url_open(bpy.types.Operator):
def execute(self, context):
import webbrowser
+ _webbrowser_bug_fix()
webbrowser.open(self.url)
return {'FINISHED'}
@@ -625,6 +626,7 @@ class WM_OT_doc_view(bpy.types.Operator):
return {'PASS_THROUGH'}
import webbrowser
+ _webbrowser_bug_fix()
webbrowser.open(url)
return {'FINISHED'}
@@ -855,3 +857,65 @@ class WM_OT_sysinfo(bpy.types.Operator):
import sys_info
sys_info.write_sysinfo(self)
return {'FINISHED'}
+
+
+def _webbrowser_bug_fix():
+ # test for X11
+ import os
+
+ if os.environ.get("DISPLAY"):
+
+ # BSD licenced code copied from python, temp fix for bug
+ # http://bugs.python.org/issue11432, XXX == added code
+ def _invoke(self, args, remote, autoraise):
+ # XXX, added imports
+ import io
+ import subprocess
+ import time
+
+ raise_opt = []
+ if remote and self.raise_opts:
+ # use autoraise argument only for remote invocation
+ autoraise = int(autoraise)
+ opt = self.raise_opts[autoraise]
+ if opt:
+ raise_opt = [opt]
+
+ cmdline = [self.name] + raise_opt + args
+
+ if remote or self.background:
+ inout = io.open(os.devnull, "r+")
+ else:
+ # for TTY browsers, we need stdin/out
+ inout = None
+ # if possible, put browser in separate process group, so
+ # keyboard interrupts don't affect browser as well as Python
+ setsid = getattr(os, 'setsid', None)
+ if not setsid:
+ setsid = getattr(os, 'setpgrp', None)
+
+ p = subprocess.Popen(cmdline, close_fds=True, # XXX, stdin=inout,
+ stdout=(self.redirect_stdout and inout or None),
+ stderr=inout, preexec_fn=setsid)
+ if remote:
+ # wait five secons. If the subprocess is not finished, the
+ # remote invocation has (hopefully) started a new instance.
+ time.sleep(1)
+ rc = p.poll()
+ if rc is None:
+ time.sleep(4)
+ rc = p.poll()
+ if rc is None:
+ return True
+ # if remote call failed, open() will try direct invocation
+ return not rc
+ elif self.background:
+ if p.poll() is None:
+ return True
+ else:
+ return False
+ else:
+ return not p.wait()
+
+ import webbrowser
+ webbrowser.UnixBrowser._invoke = _invoke \ No newline at end of file