[Bf-extensions-cvs] [449e2c40] master: BlenderKit: fix unregister - removing draw progress handlers

Vilem Duha noreply at git.blender.org
Thu Apr 4 00:44:51 CEST 2019


Commit: 449e2c4072d507c873d0a6246f401293a9abad3c
Author: Vilem Duha
Date:   Thu Apr 4 00:34:43 2019 +0200
Branches: master
https://developer.blender.org/rBA449e2c4072d507c873d0a6246f401293a9abad3c

BlenderKit: fix unregister - removing draw progress handlers

===================================================================

M	blenderkit/ui.py

===================================================================

diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 4973b6c3..7d0a3573 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -42,6 +42,9 @@ from mathutils import Vector
 import time
 import os
 
+handler_2d = None
+handler_3d = None
+
 mappingdict = {
     'MODEL': 'model',
     'SCENE': 'scene',
@@ -1132,7 +1135,7 @@ class AssetBarOperator(bpy.types.Operator):
                 if ui_props.has_hit and ui_props.asset_type == 'MODEL':
                     # this condition is here to fix a bug for a scene submitted by a user, so this situation shouldn't
                     # happen anymore, but there might exists scenes which have this problem for some reason.
-                    if ui_props.active_index<len(sr) and ui_props.active_index>-1:
+                    if ui_props.active_index < len(sr) and ui_props.active_index > -1:
                         ui_props.draw_snapped_bounds = True
                         active_mod = sr[ui_props.active_index]
                         ui_props.snapped_bbox_min = Vector(active_mod['bbox_min'])
@@ -1338,7 +1341,7 @@ class AssetBarOperator(bpy.types.Operator):
                 pass
             return {'FINISHED'}
 
-        ui_props.dragging = False #only for cases where assetbar ended with an error.
+        ui_props.dragging = False  # only for cases where assetbar ended with an error.
         ui_props.assetbar_on = True
         ui_props.turn_off = False
 
@@ -1383,12 +1386,15 @@ addon_keymaps = []
 
 
 def register_ui():
+    global handler_2d, handler_3d
+
     for c in classess:
         bpy.utils.register_class(c)
 
     args = (None, bpy.context)
-    bpy.types.SpaceView3D.draw_handler_add(draw_callback_2d_progress, args, 'WINDOW', 'POST_PIXEL')
-    bpy.types.SpaceView3D.draw_handler_add(draw_callback_3d_progress, args, 'WINDOW', 'POST_VIEW')
+
+    handler_2d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_2d_progress, args, 'WINDOW', 'POST_PIXEL')
+    handler_3d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_3d_progress, args, 'WINDOW', 'POST_VIEW')
 
     wm = bpy.context.window_manager
 
@@ -1404,16 +1410,16 @@ def register_ui():
 
 
 def unregister_ui():
+    global handler_2d, handler_3d
+
     for c in classess:
         bpy.utils.unregister_class(c)
 
     args = (None, bpy.context)
 
-    try:
-        bpy.types.SpaceView3D.draw_handler_remove(draw_callback_2d_progress, args, 'WINDOW', 'POST_PIXEL')
-        bpy.types.SpaceView3D.draw_handler_remove(draw_callback_3d_progress, args, 'WINDOW', 'POST_VIEW')
-    except:
-        print('handlers allready removed')
+    bpy.types.SpaceView3D.draw_handler_remove(handler_2d, 'WINDOW')
+    bpy.types.SpaceView3D.draw_handler_remove(handler_3d, 'WINDOW')
+
     wm = bpy.context.window_manager
     if not wm.keyconfigs.addon:
         return



More information about the Bf-extensions-cvs mailing list