mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-10 06:00:51 +00:00
fix #4311: turn off local view when activating drawing
This commit is contained in:
@@ -49,22 +49,30 @@ class Blender(blenderbim.core.tool.Blender):
|
|||||||
OBJECT_TYPES_THAT_SUPPORT_EDIT_GPENCIL_MODE = ("GPENCIL",)
|
OBJECT_TYPES_THAT_SUPPORT_EDIT_GPENCIL_MODE = ("GPENCIL",)
|
||||||
TYPE_MANAGER_ICON = "LIGHTPROBE_VOLUME" if bpy.app.version >= (4, 1, 0) else "LIGHTPROBE_GRID"
|
TYPE_MANAGER_ICON = "LIGHTPROBE_VOLUME" if bpy.app.version >= (4, 1, 0) else "LIGHTPROBE_GRID"
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def activate_camera(cls, obj: bpy.types.Object) -> None:
|
def activate_camera(cls, obj: bpy.types.Object) -> None:
|
||||||
|
|
||||||
|
|
||||||
area = tool.Blender.get_view3d_area()
|
area = tool.Blender.get_view3d_area()
|
||||||
is_local_view = area.spaces[0].local_view is not None
|
is_local_view = area.spaces[0].local_view is not None
|
||||||
|
|
||||||
if is_local_view:
|
if is_local_view:
|
||||||
# Turn off local view before activating drawing, and then turn it on again.
|
# Turn off local view before activating drawing, and then turn it on again.
|
||||||
for a in bpy.context.screen.areas:
|
for a in bpy.context.screen.areas:
|
||||||
if a.type == "VIEW_3D":
|
if a.type == 'VIEW_3D':
|
||||||
override = bpy.context.copy()
|
override = {'area': a, 'region': a.regions[-1], 'space': a.spaces[0], 'scene': bpy.context.scene}
|
||||||
override["area"] = a
|
with bpy.context.temp_override(**override):
|
||||||
bpy.ops.view3d.localview(override)
|
bpy.ops.view3d.localview()
|
||||||
bpy.context.scene.camera = obj
|
bpy.context.scene.camera = obj
|
||||||
bpy.ops.view3d.localview(override)
|
|
||||||
else:
|
else:
|
||||||
bpy.context.scene.camera = obj
|
bpy.context.scene.camera = obj
|
||||||
area.spaces[0].region_3d.view_perspective = "CAMERA"
|
|
||||||
|
area.spaces[0].region_3d.view_perspective = 'CAMERA'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_area_props(cls, context: bpy.types.Context) -> Any:
|
def get_area_props(cls, context: bpy.types.Context) -> Any:
|
||||||
|
|||||||
Reference in New Issue
Block a user