ThinkGeo.com    |     Documentation    |     Premium Support

Fix problems with DoubleClick handling in Desktop Edition Control in version 8.0

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. 


 


 



Hi Mark, 
  
 Thanks for your suggestion! 
  
 We are very glad to hear user’s response about our product, and we are keep trying to make our map better and better. 
  
 Our developers have read your idea and they are discussing about it. Unfortunately this week is very close to release 8.0 so we have freeze any big changes, but we will try to solve this problem and introduce new enhancement after release 8, in fact we are planning to develop special version for mobile and tablet, we think they can provide better operation experience and performance.  
  
 So please keep focus our notification. 
  
 Regards, 
  
 Don 
  


I just want o give my opinion:  
 Difference between Desktop and Tablet platform is getting blurred. And from application development, it is easier to have one source code and one app then several apps depending on platform. One of my users is using ruggadized laptop that has touch screen with pen. He is using both mouse pad and pen to touch screen to interact with application. So, which version of software he will get: desktop or tablet? He doesn’t want to be bothered with choices; he just expects that both ways of interaction with control will work always and consistently. That is why Desktop control should be able to handle both kind of inputs. 


Thanks Mark, 
  
 I think we miss this feature because we haven’t met some scenarios just like your customer, but I am sure it’s very useful advice for make our map control easier to use. 
  
 Thanks for your opinion again. 
  
 Regards, 
  
 Don