[Bf-blender-cvs] [4f69dca547c] master: Fix 'bl_app_override' wrapping multiple times.
Campbell Barton
noreply at git.blender.org
Wed Mar 29 05:30:25 CEST 2017
Commit: 4f69dca547cf58f7a27dfa20699115e1171e84f1
Author: Campbell Barton
Date: Wed Mar 29 14:29:18 2017 +1100
Branches: master
https://developer.blender.org/rB4f69dca547cf58f7a27dfa20699115e1171e84f1
Fix 'bl_app_override' wrapping multiple times.
Calling `SomeClass.draw(self, context)` instead of `self.draw()`
would try to wrap the argument `self` multiple times, causing an error.
===================================================================
M release/scripts/modules/bl_app_override/__init__.py
===================================================================
diff --git a/release/scripts/modules/bl_app_override/__init__.py b/release/scripts/modules/bl_app_override/__init__.py
index 66857701669..89cc8a0eb28 100644
--- a/release/scripts/modules/bl_app_override/__init__.py
+++ b/release/scripts/modules/bl_app_override/__init__.py
@@ -147,10 +147,12 @@ def ui_draw_filter_register(
return super().operator(*args, **kw)
def draw_override(func_orig, self_real, context):
- # simple, no wrapping
- # return func_orig(self_wrap, context)
+ cls_real = self_real.__class__
+ if cls_real is super:
+ # simple, no wrapping
+ return func_orig(self_real, context)
- class Wrapper(self_real.__class__):
+ class Wrapper(cls_real):
__slots__ = ()
def __getattribute__(self, attr):
if attr == "layout":
More information about the Bf-blender-cvs
mailing list