diff --git a/multi_user/__init__.py b/multi_user/__init__.py index 42acb53..1259640 100644 --- a/multi_user/__init__.py +++ b/multi_user/__init__.py @@ -44,7 +44,7 @@ from . import environment DEPENDENCIES = { - ("replication", '0.0.21a21'), + ("replication", '0.0.21'), } diff --git a/multi_user/delayable.py b/multi_user/delayable.py index 8bdc667..3a2de49 100644 --- a/multi_user/delayable.py +++ b/multi_user/delayable.py @@ -209,18 +209,12 @@ class DynamicRightSelectTimer(Timer): RP_COMMON, recursive=recursive) - for user, user_info in session.online_users.items(): - if user != settings.username: - metadata = user_info.get('metadata') - - if 'selected_objects' in metadata: - # Update selectionnable objects - for obj in bpy.data.objects: - if obj.hide_select and obj.uuid not in metadata['selected_objects']: - obj.hide_select = False - elif not obj.hide_select and obj.uuid in metadata['selected_objects']: - obj.hide_select = True - + for obj in bpy.data.objects: + object_uuid = getattr(obj, 'uuid', None) + if object_uuid: + is_selectable = not session.is_readonly(object_uuid) + if obj.hide_select != is_selectable: + obj.hide_select = is_selectable class ClientUpdate(Timer): def __init__(self, timout=.1):