I have noticed following problem (subject to your team verification of course):
Version 7.0 Desktop Edition has problems with handling of Double Clicks on the Desktop Control. Problem is manifested when control is used on Tablet PC with Pen. Double Click event of Desktop Control is not always triggered, while Windows Control.DoubleClick Event behaves normally and is triggered. I think you might consider fixing it in 8.0.
My analysis has found following:
Desktop Control (ThinkGeo.MapSuite.DesktopEdition.WinformsMap class) is doing it’s own Click and Double click handling. To do that, it subscribes to windows control MouseUP/MoueDown Events. Then it uses internal class ThinkGeo.MapSuite.DesktopEdition.MouseEventAnalyzer to analyze those events and generates Click and DoubleClick events for the Desktop Control (ThinkGeo.MapSuite.DesktopEdition.WinformsMap class). I think that conceptual error has been made here, I think better would be to relay on inherited Control’s Double Click that is available.
What is happening then, class MouseEventAnalyzer does analyzing of MouseUp/MouseDown events and using it’s own logic, creates Click and DoubleClick evens for the class WinformsMap. Problem is that that logic inside MouseEventAnalyzer is similar but not identical to what Control is doing. Most of the times things are same, so all is fine. But sometimes, things are not OK.
In situation when Pen is used, I think I have noticed following: During double click with Pen/Stylus, windows Control class detects double clicks, but class WinformsMap doesn’t. Reason is because MouseEventAnalyzer can’t figure what it going on. During double-click with Pen on Tablet, first and second click do not happen on *exactly* same point of screen, because typically Pen slides a bit on the screen. Control.DoubleClick event is triggers, so Control can figure that out. But MouseEventAnalyzer expects both click to be *exactly* on the same point of the screen, so doesn’t register that as Double-Click.
Solution seems to be:
1) (the best one) change code of WinformsMap so it relays on underlying Control.DoubleClick event, so you get behaviour same as all other windows controls. This option also means that user can control parameters of Click/DoubleClick via ControlPanel and that is convenient when using all kind of Tablet PCs.
2) Make MouseEventAnalyzer class public with some kind of public interface, so users can plug-in it’s own logic to handle double-click and resolve problems on Pen Tablet
3) You can make class MouseEventAnalyzer smarter to better handle DoubleClick events. I do not like this option because then behavior of DoubleClick for WinformsMap can not be controlled via Control Panel and is different for that control compared to other controls that are tunable via Control Panel. One of reasons for that is that typically MouseEventAnalyzer will have it’s own internal timer, which is not controled by Control Panel.