diff --git a/space_view3d_panel_measure.py b/space_view3d_panel_measure.py index 936a3975934112169b31f28eab263df58bc80277..6897871a79bca02e0a132dfd32811604fb21ea86 100644 --- a/space_view3d_panel_measure.py +++ b/space_view3d_panel_measure.py @@ -913,7 +913,6 @@ class VIEW3D_OT_display_measurements(bpy.types.Operator): def modal(self, context, event): context.area.tag_redraw() - return {'FINISHED'} def execute(self, context): @@ -921,17 +920,18 @@ class VIEW3D_OT_display_measurements(bpy.types.Operator): mgr_ops = context.window_manager.operators.values() if not self.bl_idname in [op.bl_idname for op in mgr_ops]: # Add the region OpenGL drawing callback - for WINregion in context.area.regions: - if WINregion.type == 'WINDOW': - self._handle = WINregion.callback_add( - draw_measurements_callback, - (self, context), - 'POST_PIXEL') - print("Measure panel display callback added") + # XXX, this is never removed!, it should be! (at least when disabling the addon) + self._handle = bpy.types.SpaceView3D.draw_handler_add( + draw_measurements_callback, + (self, context), + 'WINDOW', 'POST_PIXEL') + + print("Measure panel display callback added") - context.window_manager.modal_handler_add(self) - return {'RUNNING_MODAL'} + # XXX, never removed! + context.window_manager.modal_handler_add(self) + return {'RUNNING_MODAL'} return {'CANCELLED'}