I looked it further, and found that it do have some issue:
1, suppose that I have A.cpp and A.h
2, Now, Menu->View->Jump->Jump clear
3, navigate in A.h, so the Jump position was recorded correctly.
4, right click on a function declaration, and select "goto definition"
5, Now, you have goto A.cpp.
Here comes the bug:
Now, by looking at the debug trace output in BrowseTracker, two jump position of A.cpp was recorded.
One is the position when the A.cpp is activated(the BrowserTracker record one position), I call it PositionA.
The next one is the function body position in A.cpp, I call it PositionB.
Now, I click the "jump backward", the caret will first return to "PositionA" in the same source file (A.cpp), then click "jump backward" again I will return to A.h.
From my point of view, we should NOT record the "PositionA"., so that we can only click "jump backward" once to return to the function declaration in A.h.
Any ideas.
EditI simply comment out the line:
JumpDataAdd(edFilename, edPosn, edstc->GetCurrentLine());
In JumpTracker.cpp, OnEditorActivated function body, I think we do not need to record jump position there.