I have just finished implementing Feature Request #2038.
I don't know the appropriate way to add the new code, because the repository is private.
Can you help me please?
Probably the best way would be to post your code here (in a ZIP file, for example). Dominik will take care of incorporating it into the program - or else he'll contact you if he has questions or problems with your work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You can attach files directly to posts using the "add attachments" button at the bottom, or if the code isn't huge you can post it direct with code highlighting.
cheers, Paul
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Tooltips are not displayed at the correct location, which causes various problems like interrupting hovering (when moving the mouse cursor from top to bottom over a group that has a tooltip, the tooltip hides the following groups and does not go away when moving down).
Sometimes the tooltip flickers or is not displayed at all (especially when moving onto a group from right to left).
Sometimes the tooltip starts to display when moving away from a group (i.e. too late).
With a custom tooltip, it probably is not easy to replicate the standard Windows behavior. Thus it may be better to get the child tooltip that the tree view has created and modify its properties. This way we can selectively change properties, but have the standard behavior in general.
Do we really need an option for this? For reading large tooltips, the tooltip should not disappear that fast, however I don't see a reason for hiding it after some custom time. Why not just display it as long as possible? Dismissing it is easy, by simply moving away the cursor. There are scenarios where automatic hiding makes sense (e.g. for a toolbar button, where the text usually can be read within a second and the tooltip might hide other important controls/content), but for the group tree I don't think automatic hiding is necessary.
Thus I've now implemented the following: when the tree view handle is created, KeePass obtains the handle of the child tooltip and changes its auto-pop delay to about 30 seconds, which is the maximum (any larger delays are truncated or ignored by Windows).
Probably the best way would be to post your code here (in a ZIP file, for example). Dominik will take care of incorporating it into the program - or else he'll contact you if he has questions or problems with your work.
Source code of the modified files
You can attach files directly to posts using the "add attachments" button at the bottom, or if the code isn't huge you can post it direct with code highlighting.
cheers, Paul
The modified files:
I found the following problems:
With a custom tooltip, it probably is not easy to replicate the standard Windows behavior. Thus it may be better to get the child tooltip that the tree view has created and modify its properties. This way we can selectively change properties, but have the standard behavior in general.
Do we really need an option for this? For reading large tooltips, the tooltip should not disappear that fast, however I don't see a reason for hiding it after some custom time. Why not just display it as long as possible? Dismissing it is easy, by simply moving away the cursor. There are scenarios where automatic hiding makes sense (e.g. for a toolbar button, where the text usually can be read within a second and the tooltip might hide other important controls/content), but for the group tree I don't think automatic hiding is necessary.
Thus I've now implemented the following: when the tree view handle is created, KeePass obtains the handle of the child tooltip and changes its auto-pop delay to about 30 seconds, which is the maximum (any larger delays are truncated or ignored by Windows).
Here's the latest development snapshot for testing:
http://keepass.info/filepool/KeePass_160413.zip
Thanks and best regards,
Dominik