Registered: Feb 2005
Location: Czech Republic
Linux Drag&Drop problems SOLVED!!! (almost)
I managed to (almost) solve the problems with Linux drag & drop (annoying delay before an item registers that you want to drag it)! It seems that the cause of the problem is the following iGesture mini behavior: If you press the three fingers down, no event is sent to the computer, NO MATTER HOW LONG YOU WAIT. Only when you start moving your fingers, the "mouseButtonDown" is sent to the computer. This happens at the same time mouse cursor actually starts moving and as a result, Linux only "notices" mousebutton press after the mouse pointer has moved (possibly outside the "grab' area, which m eans trouble). I don't know if this happens with each and every Linux configuration, but it does with mine. Windows has no problems because it probably (correctly) assumes that when dragging starts at exactly the same time when the mousebutton is clicked, it means that dragging actually started at the position where the mouse pointer was RIGHT BEFORE this movement.
But now, how I solved this problem: Run your Multitouch utility, go to "Drag & Doubleclick Chord" definition, click on "Maya PreDrag KeyCheck" and then on "ChordHold Properties Tab". Now you see a big slider and three options above it. "Finger Sliding Begins" is selected by default. Change it to "Sliding Begins or Fingers Held Stationary". Then change the slider value from the default (500 ms) to 100 ms. Send this new configuration in your device and you are done.
How this works and inherent problems of this solution: I have no idea what is the original purpose of "Maya PreDrag KeyCheck" (I never used Maya) so it's possible this breaks something for Maya Users. But this is the only way I found to force iGesture to generate the "mousebutton down" event as soon as the three fingers touch the device. Actually, with this "patch", the button event is generated 100 milliseconds after the fingers touch the device so if you are really quick, you may still have problems (if you move out of the drag zone in less than 100 milliseconds). However, you cannot make the value much smaller because then even very short touh registers as "Maya PreDrag" and double-click gesture stops working! If you experience this (doubleclick not working), you have to change the value to more than 100.
Of course, the above solution is ugly, even if you don't use Maya. There are two ways to "elegant solution". Either the Linux mouse driver should be patched for this situation (mouse movement and mousebutton press happen at the exactly same time). I am not even sure this could be called "error" because this sequence of events (mouseclick at the exactly same time as dragging starts) only happens very, very, very rarely with standard mouse (or with anything else than Fingerworks products). Or it should be fixed in the iGesture device software. We need to have the option to send "mouse button down" event AS SOON AS THE FINGERS ACTUALLY TOUCH THE DEVICE. I am not sure if there is some more ellegant way to do this now but it seems to me that this would mean changing the implementation of hardwired drag and doubleclick system events...