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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'blenderkit/ui.py')
-rw-r--r--blenderkit/ui.py62
1 files changed, 40 insertions, 22 deletions
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 5def630f..be4bd451 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -50,6 +50,11 @@ import os
handler_2d = None
handler_3d = None
+active_area = None
+active_area = None
+active_window = None
+active_region = None
+
reports = []
mappingdict = {
@@ -67,7 +72,7 @@ verification_icons = {
'uploading': 'vs_uploading.png',
'on_hold': 'vs_on_hold.png',
'validated': None,
- 'rejected': 'vs_on_hold.png'
+ 'rejected': 'vs_rejected.png'
}
@@ -133,7 +138,8 @@ class Report():
pass;
def draw(self, x, y):
- ui_bgl.draw_text(self.text, x, y + 8, 16, self.draw_color)
+ if bpy.context.area == active_area:
+ ui_bgl.draw_text(self.text, x, y + 8, 16, self.draw_color)
def get_asset_under_mouse(mousex, mousey):
@@ -1174,6 +1180,10 @@ def get_largest_3dview():
for r in a.regions:
if r.type == 'WINDOW':
region = r
+ global active_area, active_window, active_region
+ active_window = maxw
+ active_area = maxa
+ active_region = region
return maxw, maxa, region
@@ -1419,7 +1429,7 @@ class AssetBarOperator(bpy.types.Operator):
ui_props.tooltip = asset_data['tooltip']
- #bpy.ops.wm.call_menu(name='OBJECT_MT_blenderkit_asset_menu')
+ # bpy.ops.wm.call_menu(name='OBJECT_MT_blenderkit_asset_menu')
else:
ui_props.draw_tooltip = False
@@ -1700,30 +1710,38 @@ class AssetBarOperator(bpy.types.Operator):
if sr is None:
bpy.context.scene['search results'] = []
- if context.area.type == 'VIEW_3D':
- # the arguments we pass the the callback
- args = (self, context)
- self.window = context.window
- self.area = context.area
- self.scene = bpy.context.scene
- self.has_quad_views = len(bpy.context.area.spaces[0].region_quadviews) > 0
+ if context.area.type != 'VIEW_3D':
+ self.report({'WARNING'}, "View3D not found, cannot run operator")
+ return {'CANCELLED'}
- for r in self.area.regions:
- if r.type == 'WINDOW':
- self.region = r
+ # the arguments we pass the the callback
+ args = (self, context)
- update_ui_size(self.area, self.region)
+ self.window = context.window
+ self.area = context.area
+ self.scene = bpy.context.scene
- self._handle_2d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_2d, args, 'WINDOW', 'POST_PIXEL')
- self._handle_3d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_3d, args, 'WINDOW', 'POST_VIEW')
- context.window_manager.modal_handler_add(self)
- ui_props.assetbar_on = True
- return {'RUNNING_MODAL'}
- else:
- self.report({'WARNING'}, "View3D not found, cannot run operator")
- return {'CANCELLED'}
+ self.has_quad_views = len(bpy.context.area.spaces[0].region_quadviews) > 0
+
+ for r in self.area.regions:
+ if r.type == 'WINDOW':
+ self.region = r
+
+ global active_window, active_area, active_region
+ active_window = self.window
+ active_area = self.area
+ active_region = self.region
+
+ update_ui_size(self.area, self.region)
+
+ self._handle_2d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_2d, args, 'WINDOW', 'POST_PIXEL')
+ self._handle_3d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_3d, args, 'WINDOW', 'POST_VIEW')
+
+ context.window_manager.modal_handler_add(self)
+ ui_props.assetbar_on = True
+ return {'RUNNING_MODAL'}
def execute(self, context):
return {'RUNNING_MODAL'}