From ae17b60288fa72d4f7d08264d2dfc07b7837701b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Sun, 29 Sep 2024 13:34:40 +0200 Subject: [PATCH] * Explicitly release MiniMap --- components/minimap/ctrlminimap.pas | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/components/minimap/ctrlminimap.pas b/components/minimap/ctrlminimap.pas index 5672e076e7..6ecb37df5f 100644 --- a/components/minimap/ctrlminimap.pas +++ b/components/minimap/ctrlminimap.pas @@ -49,6 +49,7 @@ type procedure SetViewWindowTextColor(AValue: TColor); protected procedure NewEditorCreated(Sender: TObject); + procedure EditorDestroyed(Sender: TObject); procedure Notification(AComponent: TComponent; Operation: TOperation); override; procedure ConfigPanel(aPanel: TMiniMapControl; aFull: Boolean = False); Property MiniMaps[aIndex : Integer] : TMiniMapControl Read GetMiniMap; @@ -91,6 +92,7 @@ begin SourceEditorManagerIntf.RegisterChangeEvent(semEditorMoved,@NewEditorCreated); SourceEditorManagerIntf.RegisterChangeEvent(semEditorCloned,@NewEditorCreated); SourceEditorManagerIntf.RegisterChangeEvent(semEditorReConfigured,@EditorReconfigured); + SourceEditorManagerIntf.RegisterChangeEvent(semEditorDestroy,@EditorDestroyed); end else begin @@ -98,6 +100,7 @@ begin SourceEditorManagerIntf.UnRegisterChangeEvent(semEditorMoved,@NewEditorCreated); SourceEditorManagerIntf.UnRegisterChangeEvent(semEditorCloned,@NewEditorCreated); SourceEditorManagerIntf.UnRegisterChangeEvent(semEditorReConfigured,@EditorReconfigured); + SourceEditorManagerIntf.UnRegisterChangeEvent(semEditorDestroy,@EditorDestroyed); end; end; @@ -201,6 +204,16 @@ begin EditorWindow.AddControlToEditor(Editor,Panel,Aligns[AlignLeft]); end; +procedure TMinimapController.EditorDestroyed(Sender: TObject); +var + Editor : TSourceEditorInterface absolute Sender; + Map : TMiniMapControl; +begin + Map:=FindMiniMapForEditor(Editor); + if Assigned(Map) then + Application.ReleaseComponent(Map); +end; + procedure TMinimapController.Notification(AComponent: TComponent; Operation: TOperation); begin