Bug 180421 - Active screen edges warps the mouse across the screen
Summary: Active screen edges warps the mouse across the screen
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Unspecified
: HI normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-12 08:23 UTC by Michael Braun
Modified: 2011-01-31 18:36 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Braun 2009-01-12 08:23:00 UTC
Version:            (using Devel)
Installed from:    Compiled sources

Hi,

I've found a strange behavior when I move my mouse cursor with my touchpad to the top/right of my screen to show all open apps, the mouse cursor switched to the top/left and activate the expose feature which is set for this corner. When I use my trackpoint the problem did not appeare. My laptop is a Lenovo T61 with a touchpad and a trackpoint. If you do not exactly understand what I mean, I can make a screencast to show you the behavior.

Cheers,
Michael
Comment 1 Andreas Pakulat 2009-01-12 10:04:16 UTC
This sounds like its either a hardware bug in your touchpad or a software bug in the X11 touchpad driver. So this should be closed as either invalid or upstream, I'll let the kwin devs decide which one it is.
Comment 2 Martin Flöser 2009-01-12 14:23:27 UTC
I'd say it's upstream as a hardware bug is kind of upstream as well. You could try to report the bug to X developers.
Comment 3 lucas 2009-01-12 15:15:38 UTC
I'm not convinced that it is as this has happened to me as well sometimes with the normal mouse. As it is just way to sporadic I cannot provide any new information about it.
Comment 4 FiNeX 2010-10-10 18:21:11 UTC
I agree with Andreas and Martin: probably this is an hardware/driver/x problem.
Comment 5 mauro.iazzi 2010-12-05 00:35:30 UTC
I could reproduce the same thing with my desktop and laptop, running ati and intel respectively with open source driver. I have a touchpad on the laptop and a usb mouse on the laptop. Both run archlinux completely updated.

I am running effects with Xrender which is quite slow. The mouse sensitivity is very high.

The problem can be reproduced with desktop grid and present windows (I did not try more effects)

The most important factor seems to be that the mouse must be far from the activating edge after the animation is finished and must be still.

Xrender is necessary. Opengl with extremely slow animation still does not misbehave.

To be really me it looks really like a "sanity check" of the type
if (current_pos-last_pos>epsilon) warp_back();
(just a random guess) but I could not find anything so obvious.

I hope this helps.

mauro
Comment 6 Thomas Lübking 2010-12-05 01:03:23 UTC
Hä?

XRender: Check.
Extremely Slow: Check.
800 dpi mouse, "xset m 2 8" (default) to "xset m 4 0" (nearby unusable)

So i move the cursor into one corner to trigger either desktopgrid or present windows, move it to the screen center and take my hand away while the animation is still running and then?
In case sth. should happen - it doesn't (here)
Using XRender most of the time (though "fast") and this has never happened to me so far (and not jumping to another corner, there's a spot on my pad where i can make the pointer judder ;-)

From my personal experience i'm sorry to have tp second the other comments:
weird pointer jumping is in 90% of all cases caused by
a) cheap cams
b) useless mousepads
(hint: take a jagged knife and scratch it a bit to create better microstructure and get rid of ... "body relics".
But of course _NOT_ if it's got a fabric surface ... ;-)
(And rather try the effect on one edge first.)
Comment 7 mauro.iazzi 2010-12-05 01:58:35 UTC
yeah I forgot to say that I trigger it with an edge, not a corner. and of course I am using the last stable from arch.

The behaviour for an edge is usually to warp the mouse back to the triggering point, which usually triggers the inverse effect. It is notable that it really warps to the exact pixel where it triggered, which means it is not just a fast movement that ends on the edge. It really remembers where the mouse was and jumps there.

Another piece of information: I keep the activation delay to 0. though I could reproduce the bug with higher ones it becomes more difficult.

I can go buy a new mouse if you really insist, (it would be the fourth device I try) but I stress that I am not touching it nor the touch pad when there is the warp (after a few seconds).

It is extremely improbable that it is a device problem. How should a mouse know when an animation ended?

PS. I keep my life clean. "Body relics" are not the problem
Comment 8 Thomas Lübking 2010-12-05 17:10:32 UTC
(In reply to comment #7)
> yeah I forgot to say that I trigger it with an edge, not a corner. 
no change here.

> and of course I am using the last stable from arch.
same distro.

> The behaviour for an edge is usually to warp the mouse back to the triggering
> point, which usually triggers the inverse effect.
I've tried playin on the reactivation delay - w/o any "success" but it could help you to workaround this bug.

> It is notable that it really warps to the exact pixel where it triggered, which
> means it is not just a fast movement that ends on the edge. It really remembers
> where the mouse was and jumps there.
Hmmm... checked the code. Indeed KWin warps the cursor back on Electric borders (only) by one pixel, there's a 250ms threshhold, reading X timestamps... the whole thing looks at least suspicious to cause your issue.

There's no gui to impact this value but you could try by:
kwriteconfig -file kwinrc -group ElectricBorders  -key ElectricBorderPushbackPixels x
where "x" is the pushback distance (defaults to "1", try "0", avoid negative values)
afterwards reload the config "qdbus org.kde.kwin /KWin reconfigure"

> Another piece of information: I keep the activation delay to 0.
Just the same here, but 
> with higher ones it becomes more difficult.
this fits the above detection.

> try) but I stress that I am not touching it nor the touch pad when there is the
> warp (after a few seconds).
a few seconds???? "seconds"?
well a that delayed redecision of the HW would at least be ... "strange", so that's probably not HW related anymore :-)

> It is extremely improbable that it is a device problem. How should a mouse know
> when an animation ended?
Not at all, but the camera/chip can get confused by by it's optical measurements and then signal "stuff" (ie. trigger a mousewarp out of the void, you move the mouse a little but it looses track and triggers a "max distance" move)
 
> PS. I keep my life clean. "Body relics" are not the problem
You're human? You transpire. ;-P
Comment 9 mauro.iazzi 2011-01-31 18:30:35 UTC
it was fixed for me with 4.6 both on laptop (intel) and desktop (ati). I still don't know what caused this but it is probably irrelevant now.
Comment 10 Martin Flöser 2011-01-31 18:36:03 UTC
I set to fixed. In case it's still reproducable for someone, please reopen and provide further details.