From 8c8f4b60c2295f0586515db1e2c55b8c924d3342 Mon Sep 17 00:00:00 2001 From: martin Date: Wed, 31 Oct 2018 17:24:50 +0000 Subject: [PATCH] Ensure bookmark menu is updated if files are opened/closed. Those files may have bookmarks in the session, that will be set for the editor. Part of Issue #0034194 git-svn-id: trunk@59402 - --- ide/main.pp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ide/main.pp b/ide/main.pp index 3f11a1538f..e6cbb677b4 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -467,6 +467,7 @@ type procedure SrcNotebookEditorDoGotoBookmark(Sender: TObject; ID: Integer; Backward: Boolean); procedure SrcNotebookEditorChanged(Sender: TObject); procedure SrcNotebookEditorMoved(Sender: TObject); + procedure SrcNotebookEditorCreated(Sender: TObject); procedure SrcNotebookEditorClosed(Sender: TObject); procedure SrcNotebookCurCodeBufferChanged(Sender: TObject); procedure SrcNotebookFileNew(Sender: TObject); @@ -2157,6 +2158,7 @@ begin SourceEditorManager.RegisterChangeEvent(semEditorActivate, @SrcNotebookEditorActived); SourceEditorManager.RegisterChangeEvent(semEditorStatus, @SrcNotebookEditorChanged); SourceEditorManager.OnEditorMoved := @SrcNotebookEditorMoved; + SourceEditorManager.RegisterChangeEvent(semEditorCreate, @SrcNotebookEditorCreated); SourceEditorManager.RegisterChangeEvent(semEditorDestroy, @SrcNotebookEditorClosed); SourceEditorManager.OnPlaceBookmark := @SrcNotebookEditorPlaceBookmark; SourceEditorManager.OnClearBookmark := @SrcNotebookEditorClearBookmark; @@ -11042,6 +11044,12 @@ begin end; end; +procedure TMainIDE.SrcNotebookEditorCreated(Sender: TObject); +begin + inc(BookmarksStamp); // updates are OnIdle. So any bookmarks changed before next idle will be updated + // TODO: maybe an event semBookmarkSet/Changed should be implemented? +end; + procedure TMainIDE.SrcNotebookEditorClosed(Sender: TObject); var SrcEditor: TSourceEditor; @@ -11051,6 +11059,7 @@ begin p :=Project1.EditorInfoWithEditorComponent(SrcEditor); if (p <> nil) then p.EditorComponent := nil; // Set EditorIndex := -1 + inc(BookmarksStamp); // Editor may have had bookmarks end; procedure TMainIDE.SrcNotebookCurCodeBufferChanged(Sender: TObject);