1.-3. what is "it"? There is goto declaration (ctrl-t), and goto definition (ctrl-shift-t).
My expectation would be if I say "goto definition" that it will show definitions in the popup list, and if I say "goto declaration" it will show declarations. It should not try to be smart, it isn't. If I have a call selected and say I want to see the implementation (the definition) why does it go to the declaration, even when I select goto definition? If I pick the wrong definition from the list and say "goto definition" to select another, why does it only show me declarations, thats daft, it presumes Geany knows better than the user.
So I guess in your example you invoked it on the handle in your cpp file so you got just the declarations.
I invoked both goto declaration and goto definition in both .hpp and .cpp, always got .hpp in the list. I tried to be thorough and try all combinations of "goto declaration" and "goto definition" and `.hpp` and `.cpp` files (I did not try calls since I didn't have that file open).
(Or there's really some bug of course :-)
I suspect there is two things:
- some daft design/implementation of the feature that ignores what the user tells it to do, and - because I never saw the .cpp symbols in the list, no matter where I invoked it or which action I invoked, I suspect there is also a bug.
This can wait until after release when I will try to gist a minimal failing example for thorough analysis.