forked from bartvdbraak/blender
tweaks not to load webbrowser or math modules on startup.
This commit is contained in:
parent
f87b37b3ef
commit
72fe34efb2
@ -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
|
||||
|
@ -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
|
@ -219,7 +219,7 @@ static void rna_ParticleHairKey_location_object_set(PointerRNA *ptr, const float
|
||||
static void rna_ParticleHairKey_dynamic_location_object_get(PointerRNA *ptr, float *values)
|
||||
{
|
||||
HairKey *hkey= (HairKey *)ptr->data;
|
||||
Object *ob = (Object *)ptr->id.data;
|
||||
// Object *ob = (Object *)ptr->id.data;
|
||||
ParticleSystemModifierData *psmd;
|
||||
ParticleData *pa;
|
||||
|
||||
@ -245,7 +245,7 @@ static void rna_ParticleHairKey_dynamic_location_object_get(PointerRNA *ptr, flo
|
||||
static void rna_ParticleHairKey_dynamic_location_object_set(PointerRNA *ptr, const float *values)
|
||||
{
|
||||
HairKey *hkey= (HairKey *)ptr->data;
|
||||
Object *ob = (Object *)ptr->id.data;
|
||||
// Object *ob = (Object *)ptr->id.data;
|
||||
ParticleSystemModifierData *psmd;
|
||||
ParticleData *pa;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user