First off, I love this app. Just awesome :-)
I haven't used easystroke before, installed it today. Details of my setup:
- Nvidia 8800GTS chipset at 1920x1200 with nvidia 180.51 drivers.
- Archlinux
- Compiz 0.8.2 as standalone window manager
Here's the problem: If I try to draw diagonal lines, everything is fine. I can draw a perfect "X" on the screen. Horizontal lines are also fine. This means I can also draw something like ___/ without problems. But if I try to draw a horizontal line, the line doesn't follow the cursor anymore. If I go straight up, the line goes straight to the left. If I go down, it goes to the right. I attached a screenshot of me trying to follow the red line I drew in gimp. The grey line is easystroke.
I also attached the -vvvvv log of drawing the said line. I noticed that the coordinates it outputs while drawing the line are totally correct (first value not changing when drawing horizontally at the end).
Btw. using -x the problem goes away.
Oh, and running latest 0.4.6 of course
Thanks for the detailed bug report. It took me a while of staring at the log, but I think I figured out what is going on. This is a combination of an xserver bug, a device driver trying to be overly smart and easystroke hitting untested codepaths: When the driver posts a motion event whose first coordinate didn't change, it call xf86PostMotionEvent with a first_valuator parameter of 1, meaning that the first valuator it sends should be interpreted as the second valuator. The server processes this information correctly, but copies the valuator to the wrong place in the event structure, which confuses easystroke.
There is three things you can do here: The right thing to do would be to fix the server, but I couldn't find the culprit by having a short log at the source. It might be hard to find someone to debug this, seeing as xi2 is now where all development is happening. The second thing you could try is patch the driver to not do the "optimization" of starting at the second valuator. As a last resort, this can be worked around in easystroke using the attached patch.
Upgraded to karmic today and have same issue with vertical gestures. Comfirm adding -x at launch fixes this for now.
A "fix" is in git now (build instructions are here: http://easystroke.wiki.sourceforge.net/BuildInstructions\), since realistically, no one is going to fix the underlying xserver bug. I'd be grateful if someon could check if this is fixes the problem.
I tried building from git and your fix works for me :)
Thanks for doing this!
(btw I noticed I meant "vertical" a couple of times in my initial bug report and not "horizontal", it all got mixed up, but you understood anyway ;-) )