diff --git a/mesh_looptools.py b/mesh_looptools.py index ef472964b358fe04bd6affc12b49492158e72b00..d9348670bd9ec8e86e953238960dc7cbf1777e9e 100644 --- a/mesh_looptools.py +++ b/mesh_looptools.py @@ -61,7 +61,7 @@ looptools_cache = {} def get_grease_pencil(object, context): - gp = bpy.data.grease_pencils + gp = bpy.context.scene.objects['GPencil'] if not gp: gp = context.view_layers.grease_pencils return gp @@ -2843,13 +2843,13 @@ def gstretch_get_strokes(object, context): gp = get_grease_pencil(object, context) if not gp: return(None) - layer = context.active_gpencil_layer + layer = gp.data.layers[0] if not layer: return(None) - frame = context.active_gpencil_frame + frame = layer.frames[0] if not frame: return(None) - strokes = context.editable_gpencil_strokes + strokes = frame.strokes if len(strokes) < 1: return(None) @@ -3828,8 +3828,15 @@ class RemoveGP(Operator): def execute(self, context): - if context.gpencil_data is not None: - bpy.ops.gpencil.data_unlink() + gp = bpy.context.scene.objects['GPencil'] + if len(gp.data.layers[0].frames) is not 0: + bpy.ops.object.mode_set(mode='OBJECT') + bpy.ops.object.select_all('INVOKE_REGION_WIN', action='DESELECT') + gp.select_set(True) + bpy.context.view_layer.objects.active = gp + bpy.ops.object.mode_set(mode='PAINT_GPENCIL') + bpy.ops.gpencil.active_frame_delete('INVOKE_REGION_WIN') + bpy.ops.object.mode_set(mode='OBJECT') else: self.report({'INFO'}, "No Grease Pencil data to Unlink") return {'CANCELLED'}